[
https://jira.jboss.org/jira/browse/JBESB-1985?page=com.atlassian.jira.plu...
]
Kevin Conner closed JBESB-1985.
-------------------------------
Resolution: Done
I have fixed the oneway behaviour in the current codebase. A oneway service will be
defined if the outXsd attribute is not specified.
The NPE appears to be an error in JBossWS. A provider implementation should be allowed to
return null to indicate no response (a one way service) but JBossWS does not appear to
support this.
We are therefore forced (at present) to return an empty SOAPMessage leading to the
following response to the client.
<env:Envelope
xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'><env:...
EBWS - One-way MEP is not supported
-----------------------------------
Key: JBESB-1985
URL:
https://jira.jboss.org/jira/browse/JBESB-1985
Project: JBoss ESB
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Rosetta, Web Services
Affects Versions: 4.4 CP1
Reporter: Jiri Pechanec
Assignee: Kevin Conner
Priority: Critical
Fix For: 4.4 CP1
I tried to set-up service with one-way MEP. I used two methods to achieve it
1) RequestReply ESB service without outXsd
<service
category="ESBServiceSample"
name="RequestReplyCrippled"
description="Hello world ESB Service"
invmScope="GLOBAL">
<actions mep="RequestResponse" inXsd="/request.xsd"
faultXsd="/fault.xsd">
<action name="action"
class="org.jboss.soa.esb.samples.quickstart.ebws.MyJMSListenerAction"
process="displayMessage"
/>
</actions>
</service>
This service generates correct WSDL
<wsdl:operation name='RequestReplyCrippledOp'>
<wsdl:input message='tns:RequestReplyCrippledReq'
name='RequestReplyCrippledReq'></wsdl:input>
<wsdl:fault message='tns:RequestReplyCrippledFault1'
name='fault1'></wsdl:fault>
</wsdl:operation>
But the SOAP reply is incorrect
<env:Envelope
xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'><env:...
xmlns:say='http://www.jboss.org/sayHi'><say:arg0>Response from ESB
Service</say:arg0></say:sayHiResponse></env:Body></env:Envelope>
2) OneWay ESB service without outXsd
<service
category="ESBServiceSample"
name="OneWay"
description="Hello world ESB Service"
invmScope="GLOBAL">
<actions mep="OneWay" inXsd="/request.xsd"
faultXsd="/fault.xsd">
<action name="action"
class="org.jboss.soa.esb.samples.quickstart.ebws.MyJMSListenerAction"
process="displayMessage"
/>
</actions>
</service>
This service generates correct WSDL
<wsdl:portType name='OneWayPortType'>
<wsdl:operation name='OneWayOp'>
<wsdl:input message='tns:OneWayReq'
name='OneWayReq'></wsdl:input>
</wsdl:operation>
</wsdl:portType>
But the server throws an exception
2008-09-04 11:47:39,944 ERROR [org.jboss.wsf.stack.jbws.RequestHandlerImpl] Error
processing web service request
org.jboss.ws.WSException: java.lang.NullPointerException
at org.jboss.ws.WSException.rethrow(WSException.java:68)
at
org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:311)
at
org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:190)
at
org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:123)
at org.jboss.wsf.stack.jbws.EndpointServlet.service(EndpointServlet.java:84)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)
Caused by: java.lang.NullPointerException
at
org.jboss.wsf.stack.jbws.RequestHandlerImpl.sendResponse(RequestHandlerImpl.java:345)
at
org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:307)
... 22 more
2008-09-04 11:47:39,945 ERROR [org.apache.catalina.core.ContainerBase] Servlet.service()
for servlet ESBServiceSample_OneWay threw exception
java.lang.NullPointerException
at
org.jboss.wsf.stack.jbws.RequestHandlerImpl.sendResponse(RequestHandlerImpl.java:345)
at
org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleRequest(RequestHandlerImpl.java:307)
at
org.jboss.wsf.stack.jbws.RequestHandlerImpl.doPost(RequestHandlerImpl.java:190)
at
org.jboss.wsf.stack.jbws.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:123)
at org.jboss.wsf.stack.jbws.EndpointServlet.service(EndpointServlet.java:84)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:182)
at
org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
at
org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Thread.java:595)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira