[JBoss JIRA] (JBESB-3772) SyncServiceInvoker does not reset ReplyTo and FaultTo EPR when deliverSync is succesful
by Duncan Doyle (JIRA)
Duncan Doyle created JBESB-3772:
-----------------------------------
Summary: SyncServiceInvoker does not reset ReplyTo and FaultTo EPR when deliverSync is succesful
Key: JBESB-3772
URL: https://issues.jboss.org/browse/JBESB-3772
Project: JBoss ESB
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Rosetta
Affects Versions: 4.10 CP1, 4.10
Environment: Fedora 16 x86_64, JBoss SOA-P 5.2.0, HornetQ TechPreview,
Reporter: Duncan Doyle
I have a number of chained async, one-way services, which all use transacted JCA (with HornetQ tech preview). I set a generic "FaultTo" EPR in a custom composer-class set on the FS-Provider of the first service (entry point into the ESB), with the intention that, if any of async, one-way services fail, the Fault Message will be sent to my FaultService.
One of my one-way services uses a SyncServiceInvoker to do a request-response call, in the middle of its action pipeline to a synchronous request-response service for message validation. The result is then used in the same pipeline to do some CBR. The problem is that, when I pass the message to the SyncServiceInvoker (which is configured to suspend the transaction), the ReplyTo and FaultTo headers get set to 'null' (as expected, as the synchronous request-response service needs to pass its reply and fault message to the caller), however, these ReplyTo and FaultTo headers never get set back to their original value if the call succeeds. In the exception flow of SyncServiceInvoker, the ReplyTo and FaultTo do get reset to their original value (with the remark that this is not actually necessary, which is wrong). So, when my CBR routes the message to the next service, the ReplyTo and FaultTo headers are null, implying that the async, one-way services will not sent a possible Fault Message to the FaultService.
In my opinion, resetting the ReplyTo and FaultTo headers needs to be done in the 'finally' block, not the 'exception' block.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years
[JBoss JIRA] (JBESB-3796) Exception handling after SyncServiceInvoker fails
by Jason Shepherd (JIRA)
Jason Shepherd created JBESB-3796:
-------------------------------------
Summary: Exception handling after SyncServiceInvoker fails
Key: JBESB-3796
URL: https://issues.jboss.org/browse/JBESB-3796
Project: JBoss ESB
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Rosetta
Affects Versions: 4.10
Environment: SOA Platform 5.2.0
Reporter: Jason Shepherd
Attachments: SupportCase00634223.zip
I have an EBWS based service which is using the SyncServiceInvoker to call a second service. This all works fine but if I throw an exception after the SyncServiceInvoker call the exception is not propagated to the client as a soap fault.
However if I remove the invocation of the SyncServiceInvoker and throw an exception, a soap fault is sent to the client.
I have attached a test project which demonstrates this.
To see the fault just comment out the SyncServiceInvoker call.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years
[JBoss JIRA] (JBESB-3838) Http Provider returns 200 http response code for Soap Fault
by Jason Shepherd (JIRA)
Jason Shepherd created JBESB-3838:
-------------------------------------
Summary: Http Provider returns 200 http response code for Soap Fault
Key: JBESB-3838
URL: https://issues.jboss.org/browse/JBESB-3838
Project: JBoss ESB
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Affects Versions: 4.10
Environment: SOA-P 5.2.0
CXF WS stack
Reporter: Jason Shepherd
When a pipeline includes a SOAPProcessor action which calls a Web Service, if the wrapped web service returns a soap fault, and HTTP response code 500, the HTTP Provider Gateway returns a response code 200 to an ESB Client, instead of the expected 500 response.
This seems contrary to the WS-I 1.0 Basic Profile specification, and breaks some Spring WS Clients.
This issue does not happen with a JBR-Provider using the HTTP protocol. The expected 500 response code is returned by it.
You can use the attached project to reproduce the issue.
1. Replace the 'webservice_producer' quickstart in SOA-P 5.2 samples/quickstart directory with the one attached.
2. Run 'ant clean deploy' to deploy it to a running instance
3. Run 'ant runtest' to send a WS Request to the HTTP Provider gateway.
When I hit the GoodbyeWorldWS directly with SOAPUI I can see that I get a 500 HTTP response code. However in the output of the test, I can see the response of the HTTP Provider was 200:
runtest:
[echo] Http Client
[java] Request payload:
[java] <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:good="http://webservice_producer/goodbyeworld">
[java] <soapenv:Header/>
[java] <soapenv:Body>
[java] <good:sayGoodbye>
[java] <message>goodbye</message>
[java] </good:sayGoodbye>
[java] </soapenv:Body>
[java] </soapenv:Envelope>
[java] --------------------------
[java]
[java] 16:30:38,927 DEBUG [main][header] >> "POST /Quickstart_webservice_producer/http/test/x HTTP/1.1[\r][\n]"
[java] 16:30:38,970 DEBUG [main][header] >> "Content-Type: text/xml;charset=UTF-8[\r][\n]"
[java] 16:30:38,973 DEBUG [main][header] >> "User-Agent: Jakarta Commons-HttpClient/3.1[\r][\n]"
[java] 16:30:38,973 DEBUG [main][header] >> "Host: localhost:8080[\r][\n]"
[java] 16:30:38,973 DEBUG [main][header] >> "Content-Length: 292[\r][\n]"
[java] 16:30:38,973 DEBUG [main][header] >> "[\r][\n]"
[java] 16:30:38,973 DEBUG [main][content] >> "<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:good="http://webservice_producer/goodbyeworld">[\n]"
[java] 16:30:38,973 DEBUG [main][content] >> " <soapenv:Header/>[\n]"
[java] 16:30:38,973 DEBUG [main][content] >> " <soapenv:Body>[\n]"
[java] 16:30:38,973 DEBUG [main][content] >> " <good:sayGoodbye>[\n]"
[java] 16:30:38,973 DEBUG [main][content] >> " <message>goodbye</message>[\n]"
[java] 16:30:38,974 DEBUG [main][content] >> " </good:sayGoodbye>[\n]"
[java] 16:30:38,974 DEBUG [main][content] >> " </soapenv:Body>[\n]"
[java] 16:30:38,974 DEBUG [main][content] >> "</soapenv:Envelope>"
[java] 16:30:39,265 DEBUG [main][header] << "HTTP/1.1 200 OK[\r][\n]"
[java] 16:30:39,266 DEBUG [main][header] << "HTTP/1.1 200 OK[\r][\n]"
[java] 16:30:39,267 DEBUG [main][header] << "Server: Apache-Coyote/1.1[\r][\n]"
[java] 16:30:39,267 DEBUG [main][header] << "X-Powered-By: Servlet 2.5; JBoss-5.0/JBossWeb-2.1[\r][\n]"
[java] 16:30:39,267 DEBUG [main][header] << "asyncServiceInvoke: false[\r][\n]"
[java] 16:30:39,267 DEBUG [main][header] << "Content-Length: 298[\r][\n]"
[java] 16:30:39,268 DEBUG [main][header] << "Date: Mon, 30 Jul 2012 06:30:39 GMT[\r][\n]"
[java] 16:30:39,268 DEBUG [main][header] << "[\r][\n]"
[java] 16:30:39,273 DEBUG [main][content] << "<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><soap:Fault><faultcode>soap:Server</faultcode><faultstring>app exception!</faultstring><detail><ns1:AppException xmlns:ns1="http://webservice_producer/goodbyeworld" /></detail"
[java] 16:30:39,273 DEBUG [main][content] << "></soap:Fault></soap:Body></soap:Envelope>"
[java]
[java] Response Status Code: 200
[java] Response payload:
[java] <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><soap:Fault><faultcode>soap:Server</faultcode><faultstring>app exception!</faultstring><detail><ns1:AppException xmlns:ns1="http://webservice_producer/goodbyeworld" /></detail></soap:Fault></soap:Body></soap:Envelope>
[java] --------------------------
[java]
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years
[JBoss JIRA] (JBESB-3802) Rewrite schemas imported by SOAPProcessor to point to locally cached versions
by Jason Shepherd (JIRA)
Jason Shepherd created JBESB-3802:
-------------------------------------
Summary: Rewrite schemas imported by SOAPProcessor to point to locally cached versions
Key: JBESB-3802
URL: https://issues.jboss.org/browse/JBESB-3802
Project: JBoss ESB
Issue Type: Feature Request
Security Level: Public (Everyone can see)
Components: Web Services
Affects Versions: 4.11
Environment: JBoss Enterprise SOA-P 5.2
Reporter: Jason Shepherd
When wrapping an external webservice using SOAPProcessor, the contract is correctly published in the contract web application, see JBESB-3789. However any schema files imported by the wrapped web service are referenced on the wrapped web service, they are not cached by the ESB. Please cache a copy of the imported schemas locally, so that a client of the ESB does not have to contact the original, wrapped, web service to retrieve the schemas.
This issue will fix will also effect JBR, HTTP gateway schemas as well.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years
[JBoss JIRA] Created: (JBESB-3597) DLQ handling on JCA side causes duplicate redelivery to DLQ
by Toshiya Kobayashi (JIRA)
DLQ handling on JCA side causes duplicate redelivery to DLQ
-----------------------------------------------------------
Key: JBESB-3597
URL: https://issues.jboss.org/browse/JBESB-3597
Project: JBoss ESB
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Adapters, Examples
Affects Versions: 4.9 CP1
Reporter: Toshiya Kobayashi
JCA DLQ handling interferes with JBM DLQ handling and may end up with unexpected results. You can find discussions in JBAS-7465 and JBPAPP-3352.
In ESB, you can reproduce the issue with jms_transacted quickstart.
====================
- Edit jboss-esb.xml to set dLQMaxResent=3
<property name="dLQMaxResent" value="3"/>
- ant deplpy
- ant runtest
The message will be sent to DLQ.
- Check jboss.messaging.destination:name=DLQ,service=Queue via jmx-console
You will see MessageCount=1
- Check jboss.esb.quickstart.destination:name=quickstart_jms_transacted_Request_esb,service=Queue via jmx-console
You will see MessageCount=1, DeliveringCount=1 though the message has been sent to DLQ.
- ant deploy
Redeploying the queue causes re-delivering the message to DLQ
- Check jboss.messaging.destination:name=DLQ,service=Queue via jmx-console
You will see MessageCount=2 (duplicate).
=====================
Looking at JBAS-7465 and JBPAPP-3352, there is less chance to resolve the root issue from AS/JBM side. I filed this JIRA for something we can address from ESB side.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month
[JBoss JIRA] (JBESB-3840) http-gateway returns invalid empty WSDL document.
by Marek Baluch (JIRA)
Marek Baluch created JBESB-3840:
-----------------------------------
Summary: http-gateway returns invalid empty WSDL document.
Key: JBESB-3840
URL: https://issues.jboss.org/browse/JBESB-3840
Project: JBoss ESB
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Rosetta
Affects Versions: 4.11 CP1
Reporter: Marek Baluch
When an ESB application is deployed and this application contains a service like:
{code}
<service category="Sales" name="List" description="" invmScope="GLOBAL">
<listeners>
<!-- Receives: http://<host>:<port>/Quickstart_http_gateway/http/sales/* but will be forced to
authenticate because the "sales" bus has basic auth configured (above)... -->
<http-gateway name="sales" busidref="secureFriends" urlPattern="sales/*" />
</listeners>
<actions mep="RequestResponse">
<action name="print" class="org.jboss.soa.esb.samples.quickstart.httpgateway.MyAction"/>
</actions>
</service>
{code}
then the URL http://<host>:<port>/Quickstart_http_gateway/http/sales?wsdl returns the following WSDL document:
{code}
<definitions/>
{code}
which clearly is not valid since it's not in the correct namespace. Even more in my opinion the http-gateway should
not return a WSDL document by default since it may be used with more then SOAP.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 2 months
[JBoss JIRA] (JBESB-3842) Message not reaching in remote queue intermittently.
by Rejin M (JIRA)
Rejin M created JBESB-3842:
------------------------------
Summary: Message not reaching in remote queue intermittently.
Key: JBESB-3842
URL: https://issues.jboss.org/browse/JBESB-3842
Project: JBoss ESB
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Application Server, Message Store, Web Services
Environment: Linux
Reporter: Rejin M
I am facing an issue while delivering message to remote queue.
My Jboss ESB server is in one linux system and Messaging server in another linux system. After completed all the actionpipeline flow, message is routing to remote queue in messaging server via JMSRouter.
Most of the messages are reaching in the remote queue while few are not.
For these failed cases, the control is reaching till the JMSRouter, then no respose.
Below is my jboss-esb.xml
<providers>
<jms-provider connection-factory="ConnectionFactory"
jndi-URL="jnp://10.38.230.46:1299" name="otp_P2_msg_rec">
<jms-bus busid="otp_P2_jms_channel">
<jms-message-filter dest-name="queue/otp_p2_request_Q" dest-type="QUEUE"
jms-security-credential="esbpassword" jms-security-principal="esbuser"/>
</jms-bus>
</jms-provider>
<jms-provider connection-factory="ConnectionFactory"
jndi-URL="jnp://10.38.230.46:1299" name="otp_service_setting_change_rec">
<jms-bus busid="otp_service_setting_change_channel">
<jms-message-filter dest-name="topic/settingChange_topic"
dest-type="TOPIC" jms-security-credential="esbpassword" jms-security-principal="esbuser"/>
</jms-bus>
</jms-provider>
</providers>
<services>
<service category="com.emirates.otp_p2" description="OTP Process Flow"
invmScope="GLOBAL" name="otp_P2_proc_flow_service">
<property name="maxThreads" value="200"/>
<listeners>
<jms-listener busidref="otp_P2_jms_channel" is-gateway="true"
maxThreads="200" name="otp_P2_process_flow_listener"/>
</listeners>
<actions mep="OneWay">
<action class="org.jboss.soa.esb.actions.SystemPrintln" name="printPatternType">
<property name="message" value="*********************************P A T T E R N -- 2*******************************"/>
</action>
<action class="com.emirates.otp.esb.actions.audit.AuditProcessor"
name="startAuditProcess" process="startAuditProcess">
<property name="auditQ" value="queue/auditservice_queue"/>
</action>
<action class="com.emirates.otp.esb.actions.core.OTPInitializer"
name="initializeOTPBus" process="process">
<!-- <property name="auditQ" value="queue/auditservice_queue"/> -->
</action>
<action
class="com.emirates.otp.esb.actions.security.AuthenticationProcessor"
name="authenticate" process="process"/>
<!-- Action start for preprocessor -->
<action
class="com.emirates.otp.esb.actions.processor.OtpProcessorAction" name="preProcessor">
<property name="processorType" value="preProcessor"/>
<property name="processorLevel" value="preSearch"/>
</action>
<action
class="com.emirates.otp.esb.actions.brms.CustomBusinessRulesProcessor" name="applyFilterRules">
<property name="object-paths">
<object-path esb="body.OTPMessage"/>
</property>
<property name="command" value="OTP2_RULES_PROP"/>
<property name="ruleAgentProperties" value="stpcrules.properties"/>
</action>
<action
class="com.emirates.otp.esb.actions.processor.OtpProcessorAction" name="postProcessor">
<property name="processorType" value="postProcessor"/>
<property name="processorLevel" value="postSearch"/>
</action>
<!-- Action end for post processor -->
<action class="com.emirates.otp.esb.actions.audit.AuditProcessor"
name="stopAuditProcess2" process="stopAuditProcess">
<property name="auditQ" value="queue/auditservice_queue"/>
</action>
<action name="print-before-jmsrouter" class="org.jboss.soa.esb.actions.SystemPrintln">
</action>
<action class="org.jboss.soa.esb.actions.routing.JMSRouter" name="sendResponse">
<property name="jndiName" value="queue/otp_p2_response_Q"/>
<property name="jndi-URL" value="jnp://10.38.230.46:1299"/>
<property name="connection-factory" value="ConnectionFactory"/>
<property name="unwrap" value="true"/>
<property name="persistent" value="false"/>
<property name="security-principal" value="esbuser"/>
<property name="security-credential" value="esbpassword"/>
</action>
</actions>
</service>
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 3 months