Hi, Could you supply a test-case for this?
Colm. On Thu, May 5, 2011 at 2:46 PM, Dirk Rudolph <[email protected]> wrote: > 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 > >
