我正在调用一个将一些数据插入表中的服务。在我的代码中,我有一个标志来插入数据,如果它是真的,如果是假,它使用普通的JDBCTemplate
类插入数据。由于我是调用REST服务的新手,因此我不确定如何处理我的响应对象。目前我只是检查响应消息和捕获异常。作为客户端,我需要做更多的事情,或者仅通过检查消息就足够了,因为服务将插入数据,因此我不必做任何其他事情。
我想知道以下代码是否对我编码的方式有意义。这里wsAuditClient.add( request );
我正在呼叫该服务。
public void insertRecord( final WSTO to ) {
boolean isWriteEnabled = true;
if( isWriteEnabled ) {
String appCode = ( String ) AppContext.getBean( Constants.SPRING_BEANCODE );
WSRequest request = wsAuditClient.getWSRequest();
WSAudit entity = new WSAudit();
WSRecord record = new WSRecord();
record.setCode( appCode );
record.setCallType( "???" );
record.setContent( "???" );
record.setServiceName( to.getWsName() );
record.setServiceTransactionId( to.getServiceTransactionId() );
entity.addRecord( record );
request.setEntity( entity );
request.setAccepts( ContentType.JSON );
WSResponse response = wsAuditClient.add( request );
if ( response != null ) {
List<Message> messages = response.getMessages();
if ( messages != null && messages.size() > 0 ) {
for ( Message message : messages ) {
if ( MessageTypeEnum.MESSAGE_TYPE_ERROR.equals( message.getMessageType() ) ) {
throw new Exception( "WS Add call returned with error (code=" + message.getMessageCode() + ", text=" + message.getMessageText() + ")" );
}
}
}
else {
throw new CoreException( "WS Add call returned with no messages" );
}
}
} else {
getJdbcTemplate().update( getSQLStatement( "wsAuditInsert" ), new PreparedStatementSetter() {
public void setValues(PreparedStatement ps) throws SQLException {
ps.setString( 1, to.getWsName() );
ps.setString( 2, to.getDetails() );
ps.setString( 3, to.getServiceTransactionId() );
new DefaultLobHandler().getLobCreator().setClobAsString( ps, 4, to.getXml() );
}
});
}
}
...谢谢