How can I get HTTP_SC inside WSO2 custom mediator?
I was trying the following code:
#Override
public boolean mediate(MessageContext context)
{
Log log = LogFactory.getLog(InfaAccessLogMediator.class);
Map<String,Object> axis2Properties = ((Axis2MessageContext)context).getAxis2MessageContext().getProperties();
for (String prop : axis2Properties.keySet()) {
log.info(String.format("AXIS2 Property: %s", prop));
}
return true;
}
Below is the sequence XML:
<sequence name="WSO2AM--Ext--Out" xmlns="http://ws.apache.org/ns/synapse">
<log level="custom">
<property name="TRY_LOG_IT" expression="get-property('axis2','HTTP_SC')" />
</log>
<class name="com.informatica.apimanager.wso2_plugins.InfaAccessLogMediator"/>
</sequence>
Following is the result in the log file
INFO {org.apache.synapse.mediators.builtin.LogMediator} - TRY_LOG_IT = 200
INFO {com.informatica.apimanager.wso2_plugins.InfaAccessLogMediator} - AXIS2 Property: addressing.validateAction
INFO {com.informatica.apimanager.wso2_plugins.InfaAccessLogMediator} - AXIS2 Property: local_throttle_map
INFO {com.informatica.apimanager.wso2_plugins.InfaAccessLogMediator} - AXIS2 Property: tomcatGenericWebappsDeplyer
INFO {com.informatica.apimanager.wso2_plugins.InfaAccessLogMediator} - AXIS2 Property: servlet.context.parameters.list
INFO {com.informatica.apimanager.wso2_plugins.InfaAccessLogMediator} - AXIS2 Property: throttle_info
INFO {com.informatica.apimanager.wso2_plugins.InfaAccessLogMediator} - AXIS2 Property: carbon.webapps.holderlist
INFO {com.informatica.apimanager.wso2_plugins.InfaAccessLogMediator} - AXIS2 Property: mediation.event.broker
INFO {com.informatica.apimanager.wso2_plugins.InfaAccessLogMediator} - AXIS2 Property: CARBON_TASK_MANAGER
INFO {com.informatica.apimanager.wso2_plugins.InfaAccessLogMediator} - AXIS2 Property: WORK_DIR
INFO {com.informatica.apimanager.wso2_plugins.InfaAccessLogMediator} - AXIS2 Property: CARBON_TASK_SCHEDULER
INFO {com.informatica.apimanager.wso2_plugins.InfaAccessLogMediator} - AXIS2 Property: CARBON_TASK_REPOSITORY
INFO {com.informatica.apimanager.wso2_plugins.InfaAccessLogMediator} - AXIS2 Property: MediationStatisticsStore
INFO {com.informatica.apimanager.wso2_plugins.InfaAccessLogMediator} - AXIS2 Property: last.accessed.time
INFO {com.informatica.apimanager.wso2_plugins.InfaAccessLogMediator} - AXIS2 Property: RESPONSE_WRITTEN
INFO {com.informatica.apimanager.wso2_plugins.InfaAccessLogMediator} - AXIS2 Property: CONFIGURATION_MANAGER
INFO {com.informatica.apimanager.wso2_plugins.InfaAccessLogMediator} - AXIS2 Property: rampartOutPolicy
INFO {com.informatica.apimanager.wso2_plugins.InfaAccessLogMediator} - AXIS2 Property: rampartInPolicy
As you can see, the log mediator logged the HTTP_SC from the axis2 context (first line from the log) but it did not appear in the map of properties inside my mediator.
A workaround that I found would by to use property mediator to set MY_HTTP_SC to the value of axis2:HTTP_SC and in my mediator use MY_HTTP_SC, but not sure why this would not work when I directly attempt to access HTTP_SC.
<property name="MY_HTTP_SC" action="set" expression="get-property('axis2','HTTP_SC')" />
<class name="com.informatica.apimanager.wso2_plugins.InfaAccessLogMediator"/>
HTTP_SC is in axis2 message context. So you need to access the Axis2 Message Context like below:
Map<String,Object> axis2Properties = ((Axis2MessageContext)context).getAxis2MessageContext().getProperties();
Related
I have created an API in the WSO2 API Manager (1.10.0) with the next info:
POST:
/regularPath/*
API URL:
http://<ip-address-1>/t/tenant.com/api/1.0.0/
HTTP-Endpoint:
http://<ip-address-2>:8181/{uri.var.newRestVar}
The issue is that the HTTP Endpoint has more than one path, e.g.:
http://<ip-address-2>:8181/mainService/cityInfo
http://<ip-address-2>:8181/country/cityInfo
http://<ip-address-2>:8181/country/dataKey/amountOfUsers
http://<ip-address-2>:8181/main/city/data/users
And I want that the resulting API URLs look like this:
http://<ip-address-1>/t/tenant.com/api/1.0.0/regularPath/mainService/cityInfo
http://<ip-address-1>/t/tenant.com/api/1.0.0/regularPath/country/cityInfo
http://<ip-address-1>/t/tenant.com/api/1.0.0/regularPath/country/dataKey/amountOfUsers
http://<ip-address-1>/t/tenant.com/api/1.0.0/regularPath/main/city/data/users
My initial approach was to use the REST_URL_PREFIX variable in order to capture the path after the 1.0.0 part of the API URL (e.g.: regularPath/country/dataKey/amountOfUsers) and then, assign that value to the uri.var.newRestVar variable.
Next, is the modified Service Bus Configuration of the API Manager (Carbon) I've created in the API Manager:
...
<inSequence>
<filter regex="PRODUCTION" source="$ctx:AM_KEY_TYPE">
<then>
<property expression="get-property('SYSTEM_TIME')" name="api.ut.backendRequestTime"/>
<log>
<property expression="$trp:To" name="ToURL"/>
</log>
<property expression="$axis2:REST_URL_POSTFIX" name="restURL" scope="default" type="STRING"/>
<log>
<property
expression="get-property('restURL')" name="logRestURL"/>
</log>
<script description="JS" language="js">
<![CDATA[
var unmodifiedRestPostfix = new String(mc.getProperty("restURL"));
print("value = " + unmodifiedRestPostfix);
unmodifiedRestPostfix = unmodifiedRestPostfix.replace("/regularPath/", "");
mc.setProperty("uri.var.newRestVar", unmodifiedRestPostfix);
]]>
</script>
<log>
<property expression="get-property('uri.var.newRestVar')" name="URI_VAR_NEWRESTVAR"/>
</log>
<send>
<endpoint name="admin-AT-tenant.com--API-Main_APIproductionEndpoint_0">
<http uri-template="http://<ip-address-2>:8181/{uri.var.newRestVar}"/>
</endpoint>
</send>
...
But it does not work. I checked the logs but everything seems to be OK:
TID: [35] [] [2016-04-11 16:47:01,955] #bank.com [35] [AM] INFO {org.apache.synapse.mediators.builtin.LogMediator} - To: local://axis2services/api/1.0.0/regularPath/mainService/cityInfo, MessageID: urn:uuid:091613ce-9fd3-4094-8638-5b112
a4214ad, Direction: request, logRestURL = /regularPath/mainService/cityInfo {org.apache.synapse.mediators.builtin.LogMediator}
a4214ad, Direction: request, URI_VAR_NEWRESTVAR = /regularPath/mainService/cityInfo {org.apache.synapse.mediators.builtin.LogMediator}
What configuration should I change in order to successfully access the HTTP-Endpoint using the paths of the API I've mentioned?
You can do the same thing without modifying the synapse configuration. Following are the steps. Hope it would be a solution for you
Create the api as following
API context : api/{version}/regularPath
Note: you can define the version in the context as a template in AM 1.10. once you define the version, above context will get the version
resources:
POST mainService/cityInfo
POST country/cityInfo
POST country/dataKey/amountOfUsers
POST main/city/data/users
HTTP Endpoint
http://<ip-address-2>:8181
After that you would be able to call a backend . No need to add custom modifications to synapse config
http://<ip-address-2>:8181/country/dataKey/amountOfUsers
with
http://<ip-address-1>/t/tenant.com/api/1.0.0/regularPath/country/dataKey/amountOfUsers
Additional information
If something went wrong, you can enable the wire logs and check what kind of request coming and going out in the gateway. see http://mytecheye.blogspot.com/2013/09/wso2-esb-all-about-wire-logs.html on how to enable wirelogs and debug using it.
Is there a way to include the http request remote host in the log mediator being used for a specific api?
Having followed the instructions, i can log the soap message, but i have no info regarding the caller of the service.
I currently use the following sequence definition:
<sequence xmlns="http://ws.apache.org/ns/synapse" name="WSO2AM--Ext--In">
<log level="full">
<property name="TRACE" value="Gunet Mediation Extension"/>
</log>
</sequence>
And the result i get when having a call is the following:
INFO - LogMediator To: /SmartSearch/1, WSAction: urn:SearchStudentStatus, SOAPAction: urn:SearchStudentStatus, MessageID: urn:uuid:36f9a5cd-c8cb-4e1e-97a6-f3ebd3303589, Direction: request, TRACE = Gunet Mediation Extension, Envelope: <?xml version='1.0' encoding='utf-8'?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><SearchStudentStatus xmlns="gunet.gr"><SSN>12312312312</SSN><institution>aueb</institution></SearchStudentStatus></S:Body></S:Envelope>
I would like to have information about the remote host that made the specific call. Is that possible, using the log mediator, or should i use a combination of log4j configs?
Thanks!
You can get the remote IP which call the API using following property mediator.
<log level="full">
<property name="Actual Remote Address" expression="get-property('axis2','REMOTE_ADDR')"/>
</log>
I'm a WSO2 newbie, so sorry in advance if my answer seems a stupid one ...
In a sequence I've the following code ....
<property name="InitialMessage" expression="$body" scope="operation" type="STRING"/>
<log level="full">
<property name="INITIAL MESSAGE" expression="get-property('InitialMessage')"/>
</log>
In the server logs I've the following ...
TID: [0] [ESB] [2014-07-04 11:27:46,569] INFO {org.apache.synapse.mediators.builtin.LogMediator} - To: http://www.w3.org/2005/08/addressing/anonymous, WSAction: process, SOAPAction: process, MessageID: urn:uuid:0D6752DAEC5AA438C92484199554844771301894479, Direction: request, **INITIAL MESSAGE = null**,..............
What am I doing wrong?
Thank you very much in advance .. .
Cesare
Please never think that your questions are stupid ones :). I think scope value that you have defined in the property mediator is invalid. Scoped must be default. It means you do not want to configure it and please tryout by removing it You can find detail about using $body from WSO2 ESB doc
I'm trying to send a message from a local client to ESB and redirect it to MB on the same server.
The message delieved MB. The client is waiting for response until application server throws error.
My environment as below
WSO2 ESB 4.8.0 (port offset 1)
WSO2 MB 2.1.1 (port offset 2)
IBM WebSphere Application Server 8.5.5.1
The proxy service configuration of ESB
<proxy name="SMSQProdProxy" transports="http" startOnLoad="true" trace="enable">
<target>
<inSequence>
<property name="OUT_ONLY" value="true"/>
<send>
<endpoint>
<address uri="jms:/SMSQ?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&java.naming.factory.initial=org.wso2.andes.jndi.PropertiesFileInitialContextFactory&java.naming.provider.url=repository/conf/jndi.properties&transport.jms.DestinationType=queue"/>
</endpoint>
</send>
</inSequence>
<outSequence>
<send/>
</outSequence>
</target>
<publishWSDL key="gov:/trunk/services/SendToSMSQProxy.wsdl">
<resource location="SMSWSService_schema1.xsd"
key="gov:/trunk/services/SMSWSService_schema1.xsd"/>
</publishWSDL>
</proxy>
jndi.properties
connectionfactory.QueueConnectionFactory = amqp://admin:admin#carbon/carbon?brokerlist='tcp://localhost:5674'
connectionfactory.TopicConnectionFactory = amqp://admin:admin#carbon/carbon?brokerlist='tcp://localhost:5674'
queue.SMSQ = SMSQ
wso2-esb-errors.log
2014-03-21 14:18:54,276 [-] [HTTP-Listener I/O dispatcher-1] WARN SourceHandler Connection time out after request is read: http-incoming-3
wso2-esb-trage.log
INFO TRACE_LOGGER Proxy Service SMSQProdProxy
received a new message from : xx.xx.xx.xx
INFO TRACE_LOGGER Message To: /services/SMSQProdProxy
INFO TRACE_LOGGER SOAPAction:
INFO TRACE_LOGGER WSA-Action:
INFO TRACE_LOGGER Using the anonymous in-sequence of the proxy service for mediation
INFO TRACE_LOGGER Start : Sequence <anonymous>
INFO TRACE_LOGGER Sequence <SequenceMediator> :: mediate()
INFO TRACE_LOGGER Mediation started from mediator position : 0
INFO TRACE_LOGGER Start : Property mediator
INFO TRACE_LOGGER Setting property : OUT_ONLY at scope : default to : true (i.e. constant : true)
INFO TRACE_LOGGER End : Property mediator
INFO TRACE_LOGGER Start : Send mediator
INFO TRACE_LOGGER Sending message through endpoint : null resolving to address = jms:/SMSQ?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&java.naming.factory.initial=org.wso2.andes.jndi.PropertiesFileInitialContextFactory&java.naming.provider.url=repository/conf/jndi.properties&transport.jms.DestinationType=queue
INFO TRACE_LOGGER SOAPAction:
INFO TRACE_LOGGER WSA-Action:
INFO TRACE_LOGGER End : Send mediator
INFO TRACE_LOGGER End : Sequence <anonymous>
error log of application server
java.io.IOException: Async IO operation failed (3), reason: RC: 55
Thanks for any idea.
After added <property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/> I get another error message
2014-03-26 22:17:23,354 [-] [http-nio-9443-exec-15] WARN AuthenticationHandler Illegal access attempt at [2014-03-26 22:17:23,0353] from IP address null while trying to authenticate access to service StatisticsAdmin
2014-03-26 22:17:23,354 [-] [http-nio-9443-exec-15] ERROR AUDIT_LOG Illegal access attempt at [2014-03-26 22:17:23,0353] from IP address null while trying to authenticate access to service StatisticsAdmin
2014-03-26 22:17:23,355 [-] [http-nio-9443-exec-15] ERROR StatisticsAdminClient Cannot get service stats for service SMSQProdProxy. Backend server may be unavailable.
org.apache.axis2.AxisFault: The input stream for an incoming message is null.
There is a similar problem https://wso2.org/jira/browse/WSAS-1214
You can add the following after the OUT_ONLY property to your in sequence to return back to the client. This property will force the ESB to respond back to the client with HTTP 202.
<property name="FORCE_SC_ACCEPTED" value="true" scope="axis2"/>
Yohan,
It seems the new error you are experiencing is not related to the MB integration flow. Have you accessed the management console after session timed out? Can you reproduce this problem continuously? OR is this just one time occurrence?
When you set the OUT_ONLY property to true you are saying that, you are not waiting the response after the proxy end. So, in outSequence remove the send mediator.
If you want to force the proxy to send the response to the client, remove the
Out_Only property and, in inSequence section set this after endPoint mediator.
property name="FORCE_SC_ACCEPTED" value="true" scope="axis2" type="STRING"
In outSequence section keep the <send/> mediator...
I trying to pass wsa addressing "From" SOAP header from one service to another but I am not able to pass. I have following scenario
I have proxy service from which we will call another WSO2 data service. If proxy service receives fault from Data service I forward that fault message to common error handler which is also proxy service.
In the proxy service before forwarding message to error handler proxy service I set the headers in the calling proxy service using the header mediator as below
<header name="Action" value="urn:mediate" />
<header name="From" value="http://localhost:8280/services/TQS_SFA_CUST_SRCH" />
<header name="To" value="http://localhost:8280/services/TQS_ERROR_HANDLER" />
However the error handler proxy service never receives "From" header, at least never shown in log or trace.
Since this is common Error handler I need to know from which service the call is coming so that I can handle error as per calling service.
How can I set the SOAP addressing headers so that I will be able to see "From" header in error handler? I tried endpoint mediator and also message level setting of the properties to send the message to error handler. I have also enable WS addressing in the endpoint definition. Looks like nothing is working.
Here are the trace log attached for your reference.
16:05:55,451 [-] [HttpClientWorker-14] INFO TRACE_LOGGER Start : Property mediator
16:05:55,452 [-] [HttpClientWorker-14] INFO TRACE_LOGGER Setting property : FromWhichService at scope : transport to : TQS_SFA_CUST_SRCH (i.e. constant : TQS_SFA_CUST_SRCH)
16:05:55,452 [-] [HttpClientWorker-14] INFO TRACE_LOGGER End : Property mediator
16:05:55,452 [-] [HttpClientWorker-14] INFO TRACE_LOGGER Start : Header mediator
16:05:55,452 [-] [HttpClientWorker-14] INFO TRACE_LOGGER Set SOAP header : Action to : urn:mediate
16:05:55,453 [-] [HttpClientWorker-14] INFO TRACE_LOGGER End : Header mediator
16:05:55,453 [-] [HttpClientWorker-14] INFO TRACE_LOGGER Start : Header mediator
16:05:55,453 [-] [HttpClientWorker-14] INFO TRACE_LOGGER Set SOAP header : From to : /services/TQS_SFA_CUST_SRCH
16:05:55,453 [-] [HttpClientWorker-14] INFO TRACE_LOGGER End : Header mediator
16:05:55,453 [-] [HttpClientWorker-14] INFO TRACE_LOGGER Start : Header mediator
16:05:55,453 [-] [HttpClientWorker-14] INFO TRACE_LOGGER Set SOAP header : To to : http://localhost:8280/services/TQS_ERROR_HANDLER
16:05:55,454 [-] [HttpClientWorker-14] INFO TRACE_LOGGER End : Header mediator
16:05:55,454 [-] [HttpClientWorker-14] INFO TRACE_LOGGER Start : Log mediator
16:05:55,455 [-] [HttpClientWorker-14] INFO TRACE_LOGGER To: http://localhost:8280/services/TQS_ERROR_HANDLER, From: /services/TQS_SFA_CUST_SRCH, WSAction: urn:mediate, SOAPAction: urn:mediate, MessageID: urn:uuid:0ccdd39d-e96b-491b-ba53-2411b84fa950, Direction: response, Envelope: <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><axis2ns233:DataServiceFault xmlns:axis2ns233="http://ws.wso2.org/dataservice">Error obtaining parser from data source:DS Fault Message: Error in 'SQLQuery.processNormalQuery'
DS Code: DATABASE_ERROR
Source Data Service:-
Name: CUST_SRCH_D_DS
Location: /CUST_SRCH_D_DS-1.0.0.dbs
Description: N/A
Default Namespace: http://ws.wso2.org/dataservice
Current Request Name: CUST_SRCH_OP
Current Params: {DSID={100008492,10001565,100016993,100097721}}
Nested Exception:-
DS Fault Message: Error in 'createProcessedPreparedStatement'
DS Code: UNKNOWN_ERROR
Nested Exception:-
com.teradata.jdbc.jdbc_4.util.JDBCException: [Teradata Database] [TeraJDBC 14.00.00.13] [Error 3810] [SQLState 42S22] Column/Parameter 'gca.a.peson_id' does not exist.
</axis2ns233:DataServiceFault></soapenv:Body></soapenv:Envelope>
16:05:55,455 [-] [HttpClientWorker-14] INFO TRACE_LOGGER End : Log mediator
16:05:55,455 [-] [HttpClientWorker-14] INFO TRACE_LOGGER Start : Send mediator
16:05:55,455 [-] [HttpClientWorker-14] INFO TRACE_LOGGER Receiving sequence is set to: Value {name ='null', keyValue ='conf:/tqs/common/ErrorRedirect_Seq.xml'}
16:05:55,455 [-] [HttpClientWorker-14] INFO TRACE_LOGGER Sending response message using implicit message properties..
Sending To: http://localhost:8280/services/TQS_ERROR_HANDLER
SOAPAction: urn:mediate
16:05:55,457 [-] [HttpClientWorker-14] INFO TRACE_LOGGER End : Send mediator
16:05:55,457 [-] [HttpClientWorker-14] INFO TRACE_LOGGER End : Filter mediator
16:05:55,458 [-] [HttpClientWorker-14] INFO TRACE_LOGGER Start : Log mediator
16:05:55,458 [-] [HttpClientWorker-14] INFO TRACE_LOGGER To: http://localhost:8280/services/TQS_ERROR_HANDLER,From: /services/TQS_SFA_CUST_SRCH,WSAction: urn:mediate,SOAPAction: urn:mediate,MessageID: urn:uuid:f71c97ef-1f32-43a4-9973-c68df81115db,Direction: response,OutSequence-ExitMessage = TQS_SFA_CUST_SRCH - Exiting OutSequence.,Envelope: <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><axis2ns233:DataServiceFault xmlns:axis2ns233="http://ws.wso2.org/dataservice">Error obtaining parser from data source:DS Fault Message: Error in 'SQLQuery.processNormalQuery'
DS Code: DATABASE_ERROR
Source Data Service:-
Name: CUST_SRCH_D_DS
Location: /CUST_SRCH_D_DS-1.0.0.dbs
Description: N/A
Default Namespace: http://ws.wso2.org/dataservice
Current Request Name: CUST_SRCH_OP
Current Params: {DSID={100008492,10001565,100016993,100097721}}
Nested Exception:-
DS Fault Message: Error in 'createProcessedPreparedStatement'
DS Code: UNKNOWN_ERROR
Nested Exception:-
com.teradata.jdbc.jdbc_4.util.JDBCException: [Teradata Database] [TeraJDBC 14.00.00.13] [Error 3810] [SQLState 42S22] Column/Parameter 'gca.a.peson_id' does not exist.
</axis2ns233:DataServiceFault></soapenv:Body></soapenv:Envelope>
16:05:55,459 [-] [HttpClientWorker-14] INFO TRACE_LOGGER End : Log mediator
16:05:55,459 [-] [HttpServerWorker-13] INFO TRACE_LOGGER Proxy Service TQS_ERROR_HANDLER received a new message from : 127.0.0.1
16:05:55,460 [-] [HttpClientWorker-14] INFO TRACE_LOGGER End : Sequence <anonymous>
16:05:55,461 [-] [HttpServerWorker-13] INFO TRACE_LOGGER Message To: /services/TQS_ERROR_HANDLER
16:05:55,461 [-] [HttpServerWorker-13] INFO TRACE_LOGGER SOAPAction: null
16:05:55,462 [-] [HttpServerWorker-13] INFO TRACE_LOGGER WSA-Action: null
16:05:55,462 [-] [HttpServerWorker-13] INFO TRACE_LOGGER Using the anonymous in-sequence of the proxy service for mediation
16:05:55,463 [-] [HttpServerWorker-13] INFO TRACE_LOGGER Start : Sequence <anonymous>
16:05:55,463 [-] [HttpServerWorker-13] INFO TRACE_LOGGER Setting the onError handler : conf:/tqs/common/FaultHandler_Seq.xml for the sequence : null
16:05:55,463 [-] [HttpServerWorker-13] INFO TRACE_LOGGER Sequence <SequenceMediator> :: mediate()
16:05:55,463 [-] [HttpServerWorker-13] INFO TRACE_LOGGER Start : Log mediator
16:05:55,464 [-] [HttpServerWorker-13] ERROR TRACE_LOGGER To: /services/TQS_ERROR_HANDLER,MessageID: urn:uuid:2893d313-b936-4b43-a551-538b26f7cb72,Direction: request,InSequence-EntryMessage = TQS_ERROR_HANDLER - Entering InSequence.,Envelope: <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><axis2ns233:DataServiceFault xmlns:axis2ns233="http://ws.wso2.org/dataservice">Error obtaining parser from data source:DS Fault Message: Error in 'SQLQuery.processNormalQuery'
DS Code: DATABASE_ERROR
Source Data Service:-
Name: CUST_SRCH_D_DS
Location: /CUST_SRCH_D_DS-1.0.0.dbs
Description: N/A
Default Namespace: http://ws.wso2.org/dataservice
Current Request Name: CUST_SRCH_OP
Current Params: {DSID={100008492,10001565,100016993,100097721}}
Nested Exception:-
DS Fault Message: Error in 'createProcessedPreparedStatement'
DS Code: UNKNOWN_ERROR
Nested Exception:-
com.teradata.jdbc.jdbc_4.util.JDBCException: [Teradata Database] [TeraJDBC 14.00.00.13] [Error 3810] [SQLState 42S22] Column/Parameter 'gca.a.peson_id' does not exist.
</axis2ns233:DataServiceFault></soapenv:Body></soapenv:Envelope>
16:05:55,464 [-] [HttpServerWorker-13] INFO TRACE_LOGGER End : Log mediator
Try <property name="PRESERVE_WS_ADDRESSING" value="true"/> in the inSeq.
Reference:
http://wso2.org/project/esb/java/4.0.3/docs/properties_guide.html