[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, 1 month
[JBoss JIRA] (JBESB-3873) Reformat exception in SOAPClient on http 500
by Tom Cunningham (JIRA)
Tom Cunningham created JBESB-3873:
-------------------------------------
Summary: Reformat exception in SOAPClient on http 500
Key: JBESB-3873
URL: https://issues.jboss.org/browse/JBESB-3873
Project: JBoss ESB
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Web Services
Affects Versions: 4.11 CP2
Reporter: Tom Cunningham
Assignee: Tom Cunningham
Fix For: 4.11 CP2
ESB behavior when SOAPClient is used and an HTTP 500 is encountered. SOA-P in this case throws an Exception that contains the HTTP 500 stack trace, which ActionProcessingPipeline receives. In forming replyTo Msg, it uses Util and fails because the Exception isn't in a format it is prepared to handle.
The end result is that the pipeline does not provide a useful message.
A fix is suggested below. By properly formatting the Exception, Util is happy with the results and everything works as it should. The customer that opened the case validates that the symptom reported has not happened since using this code.
// Code from SOAPClient, as fixed. To find the spot, grep for 'if(responseAsOgnlMap) then compare from there.
if(responseAsOgnlMap) {
try {
String mergedResponse = soapUIInvoker.mergeResponseTemplate(wsdl, getEndpointOperation(), soapServiceName, response.getBody(), httpClientProps, null, soapNs);
response.setBody(mergedResponse);
} catch (IOException e) {
Exception validException = new Exception("IOException in attempt to set Response body with merged result, possibly as result of an HTTP 500");
throw new ActionProcessingException("soapUI Client Service invocation failed3.", validException);
} catch (SAXException e) {
throw new ActionProcessingException("soapUI Client Service invocation failed4.", e);
}
}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month
[JBoss JIRA] (JBESB-3858) Uncommenting GenericPipelineInterceptors in jboss-esb-properties.xml causes NullPointerException at startup
by Tadayoshi Sato (JIRA)
Tadayoshi Sato created JBESB-3858:
-------------------------------------
Summary: Uncommenting GenericPipelineInterceptors in jboss-esb-properties.xml causes NullPointerException at startup
Key: JBESB-3858
URL: https://issues.jboss.org/browse/JBESB-3858
Project: JBoss ESB
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: Rosetta
Affects Versions: 4.11
Reporter: Tadayoshi Sato
When the following "interceptors" properties in jbossesb-properties.xml are uncommented, the JBoss ESB throws java.lang.NullPointerException and fails to start up.
{code:xml}
<properties name="interceptors">
<property name="org.jboss.soa.esb.pipeline.failure.interceptors" value="org.jboss.soa.esb.listeners.message.GenericPipelineInterceptor"/>
<property name="org.jboss.soa.esb.pipeline.instantiate.interceptors" value="org.jboss.soa.esb.listeners.message.GenericPipelineInterceptor"/>
<property name="org.jboss.soa.esb.pipeline.start.interceptors" value="org.jboss.soa.esb.listeners.message.GenericPipelineInterceptor"/>
<property name="org.jboss.soa.esb.pipeline.end.interceptors" value="org.jboss.soa.esb.listeners.message.GenericPipelineInterceptor"/>
</properties>
{code}
The error stacktrace is as follows:
{code}
2012-10-15 14:50:42,708 ERROR [org.jboss.kernel.plugins.dependency.AbstractKernelController] (main) Error installing to Start: name=jboss.esb.vfsfile:/opt/jboss-soa-p-5.3.0/jboss-as/server/default/deploy/jbossesb.esb/ state=Create
java.lang.RuntimeException: org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleException: Unexpected exception while instantiating managed instance
at org.jboss.soa.esb.listeners.config.Configuration.create(Configuration.java:185)
at org.jboss.soa.esb.listeners.deployers.mc.EsbDeployment.start(EsbDeployment.java:231)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.jboss.reflect.plugins.introspection.ReflectionUtils.invoke(ReflectionUtils.java:59)
at org.jboss.reflect.plugins.introspection.ReflectMethodInfoImpl.invoke(ReflectMethodInfoImpl.java:150)
at org.jboss.joinpoint.plugins.BasicMethodJoinPoint.dispatch(BasicMethodJoinPoint.java:66)
at org.jboss.kernel.plugins.dependency.KernelControllerContextAction$JoinpointDispatchWrapper.execute(KernelControllerContextAction.java:243)
at org.jboss.kernel.plugins.dependency.ExecutionWrapper.execute(ExecutionWrapper.java:47)
at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchExecutionWrapper(KernelControllerContextAction.java:111)
at org.jboss.kernel.plugins.dependency.KernelControllerContextAction.dispatchJoinPoint(KernelControllerContextAction.java:72)
at org.jboss.kernel.plugins.dependency.LifecycleAction.installActionInternal(LifecycleAction.java:221)
at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:54)
at org.jboss.kernel.plugins.dependency.InstallsAwareAction.installAction(InstallsAwareAction.java:42)
at org.jboss.dependency.plugins.action.SimpleControllerContextAction.simpleInstallAction(SimpleControllerContextAction.java:62)
at org.jboss.dependency.plugins.action.AccessControllerContextAction.install(AccessControllerContextAction.java:71)
at org.jboss.dependency.plugins.AbstractControllerContextActions.install(AbstractControllerContextActions.java:51)
at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1652)
at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:938)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:988)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:826)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:556)
at org.jboss.system.ServiceController.doChange(ServiceController.java:688)
at org.jboss.system.ServiceController.start(ServiceController.java:460)
at org.jboss.system.deployers.ServiceDeployer.start(ServiceDeployer.java:163)
at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:99)
at org.jboss.system.deployers.ServiceDeployer.deploy(ServiceDeployer.java:46)
at org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer.internalDeploy(AbstractSimpleRealDeployer.java:62)
at org.jboss.deployers.spi.deployer.helpers.AbstractRealDeployer.deploy(AbstractRealDeployer.java:55)
at org.jboss.deployers.plugins.deployers.DeployerWrapper.deploy(DeployerWrapper.java:179)
at org.jboss.deployers.plugins.deployers.DeployersImpl.doDeploy(DeployersImpl.java:1454)
at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1172)
at org.jboss.deployers.plugins.deployers.DeployersImpl.doInstallParentFirst(DeployersImpl.java:1193)
at org.jboss.deployers.plugins.deployers.DeployersImpl.install(DeployersImpl.java:1113)
at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1652)
at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:938)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:988)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:826)
at org.jboss.dependency.plugins.AbstractController.change(AbstractController.java:556)
at org.jboss.deployers.plugins.deployers.DeployersImpl.process(DeployersImpl.java:789)
at org.jboss.deployers.plugins.main.MainDeployerImpl.process(MainDeployerImpl.java:699)
at org.jboss.system.server.profileservice.repository.MainDeployerAdapter.process(MainDeployerAdapter.java:117)
at org.jboss.system.server.profileservice.repository.ProfileDeployAction.install(ProfileDeployAction.java:70)
at org.jboss.system.server.profileservice.repository.AbstractProfileAction.install(AbstractProfileAction.java:53)
at org.jboss.system.server.profileservice.repository.AbstractProfileService.install(AbstractProfileService.java:403)
at org.jboss.dependency.plugins.AbstractControllerContext.install(AbstractControllerContext.java:348)
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:1652)
at org.jboss.dependency.plugins.AbstractController.incrementState(AbstractController.java:938)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:1082)
at org.jboss.dependency.plugins.AbstractController.resolveContexts(AbstractController.java:988)
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:778)
at org.jboss.dependency.plugins.AbstractController.install(AbstractController.java:543)
at org.jboss.system.server.profileservice.repository.AbstractProfileService.registerProfile(AbstractProfileService.java:308)
at org.jboss.system.server.profileservice.ProfileServiceBootstrap.start(ProfileServiceBootstrap.java:256)
at org.jboss.bootstrap.AbstractServerImpl.start(AbstractServerImpl.java:461)
at org.jboss.Main.boot(Main.java:223)
at org.jboss.Main$1.run(Main.java:574)
at java.lang.Thread.run(Thread.java:722)
Caused by: org.jboss.soa.esb.listeners.lifecycle.ManagedLifecycleException: Unexpected exception while instantiating managed instance
at org.jboss.soa.esb.listeners.LifecycleUtil.getManagedInstances(LifecycleUtil.java:166)
at org.jboss.soa.esb.listeners.LifecycleUtil.getListeners(LifecycleUtil.java:76)
at org.jboss.soa.esb.listeners.config.Configuration.create(Configuration.java:124)
... 63 more
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
at org.jboss.soa.esb.listeners.LifecycleUtil.getManagedInstances(LifecycleUtil.java:162)
... 65 more
Caused by: java.lang.NullPointerException
at org.jboss.soa.esb.listeners.message.GenericPipelineInterceptor.processMessage(GenericPipelineInterceptor.java:33)
at org.jboss.soa.esb.listeners.message.InterceptorManager.interceptInstantiate(InterceptorManager.java:126)
at org.jboss.soa.esb.listeners.message.ActionProcessingPipeline.<init>(ActionProcessingPipeline.java:381)
at org.jboss.soa.esb.listeners.ScheduleListener.<init>(ScheduleListener.java:90)
... 70 more
2012-10-15 14:50:42,710 INFO [org.jboss.soa.esb.listeners.deployers.mc.EsbDeployment] (main) Destroying 'jbossesb.esb'
{code}
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira
12 years, 1 month