Bas Nossing created CXF-6662:
--------------------------------

             Summary: WS-A Action generation
                 Key: CXF-6662
                 URL: https://issues.apache.org/jira/browse/CXF-6662
             Project: CXF
          Issue Type: Bug
          Components: WS-* Components
    Affects Versions: 2.7.17
         Environment: WildFly 8.1.0-Final patched with CXF-2.7.17
            Reporter: Bas Nossing


According to one of our clients the CXF WS-Adressing module is testing 
erroneous values for the WS-Addressing "action" element.
The error we're seeing in our serverlogs is the following:

WARNING [org.apache.cxf.phase.PhaseInterceptorChain] (default task-10) 
Interceptor for 
{http://logius.nl/digipoort/wus/2.0/aanleverservice/1.2/}AanleverService_V1_2#{http://logius.nl/digipoort/wus/2.0/aanleverservice/1.2/}aanleveren
 has thrown exception, unwinding now: org.apache.cxf.binding.soap.SoapFault: 
Action 
http://logius.nl/digipoort/wus/2.0/aanleverservice/1.2/AanleverService_V1_2/aanleverenRequest
 not supported
        at 
org.apache.cxf.ws.addressing.impl.MAPAggregatorImpl.mediate(MAPAggregatorImpl.java:515)
 [cxf-rt-ws-addr.jar:2.7.17]
        at 
org.apache.cxf.ws.addressing.impl.MAPAggregatorImpl.handleMessage(MAPAggregatorImpl.java:143)
 [cxf-rt-ws-addr.jar:2.7.17]
        at 
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272)
 [cxf-api.jar:2.7.17]
        at 
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:121)
 [cxf-api.jar:2.7.17]
        at 
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDestination.java:249)
 [cxf-rt-transports-http.jar:2.7.17]
        at 
org.jboss.wsf.stack.cxf.RequestHandlerImpl.handleHttpRequest(RequestHandlerImpl.java:97)
        at 
org.jboss.wsf.stack.cxf.transport.ServletHelper.callRequestHandler(ServletHelper.java:131)
        at org.jboss.wsf.stack.cxf.CXFServletExt.invoke(CXFServletExt.java:88)
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractHTTPServlet.java:289)
 [cxf-rt-transports-http.jar:2.7.17]
        at 
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServlet.java:209)
 [cxf-rt-transports-http.jar:2.7.17]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) 
[jboss-servlet-api_3.1_spec-1.0.0.Final.jar:1.0.0.Final]
        at org.jboss.wsf.stack.cxf.CXFServletExt.service(CXFServletExt.java:136)
        at org.jboss.wsf.spi.deployment.WSFServlet.service(WSFServlet.java:140) 
[jbossws-spi.jar:2.3.1.Final]
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) 
[jboss-servlet-api_3.1_spec-1.0.0.Final.jar:1.0.0.Final]
        at 
io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:85)
 [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
        at 
io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:61)
 [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
        at 
io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
 [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
        at 
org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
        at 
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)
 [undertow-core-1.0.15.Final.jar:1.0.15.Final]
        at 
io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:113)
 [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
        at 
io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:56)
 [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
        at 
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)
 [undertow-core-1.0.15.Final.jar:1.0.15.Final]
        at 
io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:45)
 [undertow-core-1.0.15.Final.jar:1.0.15.Final]
        at 
io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:61)
 [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
        at 
io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58)
 [undertow-core-1.0.15.Final.jar:1.0.15.Final]
        at 
io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70)
 [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
        at 
io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76)
 [undertow-core-1.0.15.Final.jar:1.0.15.Final]
        at 
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)
 [undertow-core-1.0.15.Final.jar:1.0.15.Final]
        at 
org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
        at 
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)
 [undertow-core-1.0.15.Final.jar:1.0.15.Final]
        at 
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:25)
 [undertow-core-1.0.15.Final.jar:1.0.15.Final]
        at 
io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:240)
 [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
        at 
io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227)
 [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
        at 
io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:73)
 [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
        at 
io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:146)
 [undertow-servlet-1.0.15.Final.jar:1.0.15.Final]
        at 
io.undertow.server.Connectors.executeRootHandler(Connectors.java:177) 
[undertow-core-1.0.15.Final.jar:1.0.15.Final]
        at 
io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:727) 
[undertow-core-1.0.15.Final.jar:1.0.15.Final]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
[rt.jar:1.7.0_71]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
[rt.jar:1.7.0_71]
        at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_71]

After looking into the W3C specs I found the following:

http://www.w3.org/Submission/ws-addressing/#_Toc77464325

- START QUOTE- 

 3.3.1 Explicit Association

The action may be explicitly associated using the wsa:Action attribute or in 
the absence of the attribute the action is defined by the rule in section 3.3.2.

 3.3.2 Default Action Pattern

In the absence of the wsa:Action attribute, the following pattern is used to 
construct a default action for inputs and outputs. The general form of an 
action URI is as follows:

[target namespace]/[port type name]/[input|output name]

- END QUOTE -

The issue arrises using the following WSDL/XSD:

    AanleverService_WUS20V12.wsdl: http://pastebin.com/BSMais7F
    digipoort-koppelvlak-1.2.xsd: http://pastebin.com/DRXc0Tfa

The generated JAX-WS code assumes request messages will have a wsa:action 
element value of 
"http://logius.nl/digipoort/wus/2.0/aanleverservice/1.2/AanleverService/aanleverenRequest";.
 Whereas according to the W3C spec, if the WS-Addressing action value is not 
specified in the WSDL it needs to be generated in the format mentioned above 
([target namespace]/[port type name]/[input|output name]). This should result 
in a wsa:action value of 
"http://logius.nl/digipoort/wus/2.0/aanleverservice/1.2/AanleverService_V1_2/aanleverenRequest";





--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to