Hi @all,

 

I added the WSS4JInInterceptor to the endpoint configured as spring bean but
this caused a different processing of values received in the soap body. Can
anyone give me a hint what the problem in my configuration is. 

 

Additional informations:

The hole service is working without the interceptor and with methods
requiring no parameters.

I'm using cxf 2.4 with WSS4J 1.6 and UsernameToken authentication.

 

Thanks,

Dirk

 

Endpoint config:

      <jaxws:endpoint id="PersonenSucheServiceEndpoint"

            implementor="#core_ws_PersonenSucheService"
address="/PersonenSuche">

            <jaxws:inInterceptors>

                  <bean
class="org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor">

                        <constructor-arg>

                             <map>

                                   <entry key="action" value="UsernameToken"
/>

                                   <entry key="passwordType"
value="PasswordDigets" />

                                   <entry key="passwordCallbackRef">

                                         <ref
bean="core_ws_security_WebServiceAuthenticationCallback" />

                                   </entry>

                             </map>

                        </constructor-arg>

                  </bean>

            </jaxws:inInterceptors>

            <jaxws:handlers>

                  <bean id="seamHandler"
class="org.jboss.seam.webservice.SOAPRequestHandler" />

            </jaxws:handlers>

            <jaxws:features>

                  <bean
class="org.apache.cxf.transport.common.gzip.GZIPFeature" />

                  <bean class="org.apache.cxf.feature.LoggingFeature" />

            </jaxws:features>

      </jaxws:endpoint>

 

SoapMessage:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:ws="http://ws.core.ebbi.mms_dresden.de/";>

   <soapenv:Header><wsse:Security
xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecuri
ty-secext-1.0.xsd"><wsse:UsernameToken wsu:Id="UsernameToken-77"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurit
y-utility-1.0.xsd"><wsse:Username>[email protected]</wsse:Username><
wsse:Password
Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token
-profile-1.0#PasswordText">*****</wsse:Password><wsse:Nonce
EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-m
essage-security-1.0#Base64Binary">ebrntIcuiXDmA0Mk9tC72Q==</wsse:Nonce><wsu:
Created>2011-05-05T13:40:07.949Z</wsu:Created></wsse:UsernameToken></wsse:Se
curity></soapenv:Header>

   <soapenv:Body>

      <ws:findPersonen>

         <ws:query>'az'</ws:query>

      </ws:findPersonen>

   </soapenv:Body>

</soapenv:Envelope>

 

ServiceInterface (only the head and the method)

 

@WebService

public interface PersonenSucheService {

    @WebMethod(action = "findPersonen")

    WSPerson[] findPersonen(@WebParam(

                                      name            = "query",

                                      targetNamespace = NAMESPACE

                                     ) String query);

}

 

Stacktrace:

org.apache.cxf.interceptor.Fault: wrong number of arguments while invoking
public de.mms_dresden.ebbi.core.ws.WSPerson[]
de.mms_dresden.ebbi.core.ws.impl.PersonenSucheServiceImpl.findPersonen(java.
lang.String) with params null.

      at
org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.j
ava:159)

      at
org.apache.cxf.jaxws.AbstractJAXWSMethodInvoker.createFault(AbstractJAXWSMet
hodInvoker.java:86)

      at
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:1
33)

      at
org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:61)

      at
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:7
5)

      at
org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInt
erceptor.java:58)

      at
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)

      at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)

      at java.util.concurrent.FutureTask.run(FutureTask.java:138)

      at
org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.jav
a:37)

      at
org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceIn
vokerInterceptor.java:106)

      at
org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain
.java:263)

      at
org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationOb
server.java:118)

      at
org.apache.cxf.transport.http.AbstractHTTPDestination.invoke(AbstractHTTPDes
tination.java:208)

      at
org.apache.cxf.transport.servlet.ServletController.invokeDestination(Servlet
Controller.java:223)

      at
org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.
java:205)

      at
org.apache.cxf.transport.servlet.CXFNonSpringServlet.invoke(CXFNonSpringServ
let.java:113)

      at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.handleRequest(AbstractH
TTPServlet.java:184)

      at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.doPost(AbstractHTTPServ
let.java:107)

      at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)

      at
org.apache.cxf.transport.servlet.AbstractHTTPServlet.service(AbstractHTTPSer
vlet.java:163)

      at
org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511)

      at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler
.java:1221)

      at
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:8
3)

      at org.jboss.seam.web.LoggingFilter.doFilter(LoggingFilter.java:60)

      at
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:6
9)

      at
de.mms_dresden.ebbi.core.fe.impl.security.SessionIdFilter.doFilter(SessionId
Filter.java:99)

      at
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:6
9)

      at
de.mms_dresden.ebbi.core.fe.impl.security.UrlValidationFilter.doFilter(UrlVa
lidationFilter.java:54)

      at
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:6
9)

      at
org.jboss.seam.web.ExceptionFilter.doFilter(ExceptionFilter.java:64)

      at
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:6
9)

      at org.jboss.seam.web.RedirectFilter.doFilter(RedirectFilter.java:45)

      at
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:6
9)

      at org.jboss.seam.web.IdentityFilter.doFilter(IdentityFilter.java:40)

      at
org.jboss.seam.servlet.SeamFilter$FilterChainImpl.doFilter(SeamFilter.java:6
9)

      at org.jboss.seam.servlet.SeamFilter.doFilter(SeamFilter.java:158)

      at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler
.java:1212)

      at
de.mms_dresden.ebbi.core.fe.impl.security.SessionFilter.doFilter(SessionFilt
er.java:135)

      at
org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler
.java:1212)

      at
org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:399)

      at
org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)

      at
org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182)

      at
org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:766)

      at
org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)

      at
org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerColl
ection.java:230)

      at
org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:11
4)

      at
org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)

      at org.mortbay.jetty.Server.handle(Server.java:326)

      at
org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542)

      at
org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:
945)

      at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:756)

      at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:218)

      at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)

      at
org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:410)

      at
org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582
)

Caused by: java.lang.IllegalArgumentException: wrong number of arguments

      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

      at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)

      at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)

      at java.lang.reflect.Method.invoke(Method.java:597)

      at
org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInv
oker.java:173)

      at
org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:8
9)

      ... 53 more

Reply via email to