WSA does not work for provider based endpoint
---------------------------------------------
Key: JBWS-2311
URL:
https://jira.jboss.org/jira/browse/JBWS-2311
Project: JBoss Web Services
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: jbossws-native, ws-addressing
Affects Versions: jbossws-native-3.0.1
Reporter: Jim Ma
When add the WSAddressingServerHandler for provider based endpoint , it raises the
following error :
ERROR [org.jboss.ws.core.jaxws.handler.HandlerChainExecutor] Exception during handler
processing
javax.xml.ws.addressing.AddressingException: Required addressing property missing:
{http://www.w3.org/2005/08/addressing}Action
at
org.jboss.ws.extensions.addressing.soap.SOAPAddressingPropertiesImpl.appendRequiredHeader(SOAPAddressingPropertiesImpl.java:304)
at
org.jboss.ws.extensions.addressing.soap.SOAPAddressingPropertiesImpl.writeHeaders(SOAPAddressingPropertiesImpl.java:257)
at
org.jboss.ws.extensions.addressing.jaxws.WSAddressingServerHandler.handleResponseOrFault(WSAddressingServerHandler.java:156)
at
org.jboss.ws.extensions.addressing.jaxws.WSAddressingServerHandler.handleOutbound(WSAddressingServerHandler.java:92)
at
org.jboss.ws.core.jaxws.handler.GenericHandler.handleMessage(GenericHandler.java:55)
at
org.jboss.ws.core.jaxws.handler.HandlerChainExecutor.handleMessage(HandlerChainExecutor.java:295)
at
org.jboss.ws.core.jaxws.handler.HandlerChainExecutor.handleMessage(HandlerChainExecutor.java:140)
at org.jboss.ws.core.jaxws.handler.HandlerDelegateJAXWS.callResponseHandlerChain
JAXWSProviderMetaDataBuilder does not process the WSA information add generate
AddressingOpMetaExt. This will cause the required outbound action in
SoapAddressingProperties not set , see the following WSAddressingServerHandler code
segment :
OperationMetaData opMetaData =
((SOAPMessageContextJAXRPC)msgContext).getOperationMetaData();
if (!isFault && !opMetaData.isOneWay())
{
AddressingOpMetaExt addrExt =
(AddressingOpMetaExt)opMetaData.getExtension(ADDR_CONSTANTS.getNamespaceURI());
if (addrExt != null)
{
outProps.setAction(ADDR_BUILDER.newURI(addrExt.getOutboundAction()));
}
else
{
log.warn("Unable to resolve replyAction for " +
opMetaData.getQName());
}
}
--
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