Hi Glen, This is weird. I don't know where the "**"s come from but they are not in my config, logs or on pastebin where I see "The given SOAPAction test.oneStringArgWssUsernameToken does not match an operation."
WRT to the "a.b" syntax, yeah it might be weird, but our tests have been like that for years. I can fix if it's wrong, otherwise I'd rather not fiddle with our giant pile of tests ;) Gary On Mon, Oct 29, 2012 at 4:41 PM, Glen Mazza <[email protected]> wrote: > The soap:actions in your WSDL seem unusual, I don't think I've seen "a.b" > syntax before: > > 1. > <operationname="test.**oneStringArgWssUsernameToken"> > 2. > <soap:operationsoapAction="**test.**oneStringArgWssUsernameToken"/**> > 3. ... > 4. > <operationname="test.**oneStringArgWssAll"> > 5. > <soap:operationsoapAction="**test.oneStringArgWssAll"/> > 6. .... > > > > But anyway, your error message is saying: > > **Fault: The given SOAPAction test.****oneStringArgWssUsernameToken does > not match an operation. > > I don't know where those two asterisks between the test. and the > oneString... are coming from, but that would appear to be the problem, it > needs to see a SOAPAction of test.**oneStringArgWssUsernameToken instead. > Can you confirm with Wireshark ( http://www.jroller.com/gmazza/** > entry/soap_calls_over_**wireshark<http://www.jroller.com/gmazza/entry/soap_calls_over_wireshark>) > that you're indeed getting those two asterisks over the wire? > > Glen > > > On 10/29/2012 04:28 PM, Gary Gregory wrote: > >> Ah! I see, but how do I get JaxWsDynamicClientFactory to behave properly >> then? >> >> Gary >> >> On Mon, Oct 29, 2012 at 4:07 PM, Glen Mazza <[email protected]> wrote: >> >> Yes, I believe it's related to some security tightening up done recently: >>> http://cxf.547215.n5.nabble.****com/CXF-2-6-2-SOAPAction-** >>> Validation-Behavior-td5713789.****html#a5713800<http://cxf.** >>> 547215.n5.nabble.com/CXF-2-6-**2-SOAPAction-Validation-** >>> Behavior-td5713789.html#**a5713800<http://cxf.547215.n5.nabble.com/CXF-2-6-2-SOAPAction-Validation-Behavior-td5713789.html#a5713800> >>> > >>> >>> >>> Glen >>> >>> >>> On 10/29/2012 04:01 PM, Gary Gregory wrote: >>> >>> Hi All: >>>> >>>> I am updating our app server to 2.7.0 from 2.6.0 and our WSS tests are >>>> failing. All the other tests are OK. I'm not sure if this is something >>>> we've gotten away with in the past with our pile of custom interceptors >>>> or >>>> if this is an incompatibility. It would be very difficult for me to >>>> extract >>>> a standalone test based on our code so I am taking a short cut to see if >>>> this will ring an obvious bell with someone. >>>> >>>> The test looks like this: >>>> >>>> @Test >>>> public void testWssNamePwd() throws Exception { >>>> final URL wsdl = >>>> ClassLoader.getSystemResource(****this.getConfigResource() + >>>> "/functions/TestBackEndWss.****wsdl"); >>>> final Client client = >>>> JaxWsDynamicClientFactory.****newInstance().createClient(** >>>> >>>> wsdl.toExternalForm()); >>>> final Map<String, Object> outProps = new HashMap<String, >>>> Object>(); >>>> outProps.put(****WSHandlerConstants.ACTION, >>>> WSHandlerConstants.USERNAME_****TOKEN); >>>> outProps.put(****WSHandlerConstants.PASSWORD_****TYPE, >>>> WSConstants.PW_TEXT); >>>> outProps.put(****WSHandlerConstants.USER, >>>> AisTestBackEnd.USER_NAME); >>>> outProps.put(****WSHandlerConstants.PW_****CALLBACK_REF, new >>>> >>>> CallbackHandler() { >>>> @Override >>>> public void handle(final Callback[] callbacks) { >>>> final WSPasswordCallback callback = >>>> (WSPasswordCallback) >>>> callbacks[0]; >>>> callback.setPassword(****AisTestBackEnd.PASSWORD); >>>> } >>>> }); >>>> client.getOutInterceptors().****add(new >>>> WSS4JOutInterceptor(outProps))****; >>>> >>>> final String ARG_VALUE = "string arg value"; >>>> Object[] results = >>>> client.invoke(AisTestBackEnd.****ONESTRINGARGWSS_**USERNAMETOKEN_** >>>> >>>> FUNCTION_NAME, >>>> new Object[] { ARG_VALUE }); >>>> Assert.assertNotNull(results); >>>> Assert.assertNotNull(results[****0]); >>>> >>>> Assert.assertTrue(((String) results[0]).indexOf(ARG_VALUE) > >>>> 0); >>>> //more asserts... >>>> >>>> This is the exception I see: >>>> >>>> 2012-10-29 15:04:40,656 [qtp563831333-20 - /lde/] WARN : Interceptor >>>> for { >>>> http://soap.comm.server.**appi**nterface.seagullsw.com/}**<http://appinterface.seagullsw.com/%7D**> >>>> LdeWebServiceProviderService#{****http://soap.comm.server.** >>>> appinterface.seagullsw.com/}****invokehas<http://appinterface.seagullsw.com/%7D**invokehas> >>>> <http://soap.comm.**server.appinterface.seagullsw.**com/%** >>>> 7DLdeWebServiceProviderService**#%7Bhttp://soap.comm.server.** >>>> appinterface.seagullsw.com/%**7Dinvokehas<http://soap.comm.server.appinterface.seagullsw.com/%7DLdeWebServiceProviderService#%7Bhttp://soap.comm.server.appinterface.seagullsw.com/%7Dinvokehas> >>>> > >>>> thrown exception, unwinding now >>>> org.apache.cxf.interceptor.****Fault: The given SOAPAction >>>> test.****oneStringArgWssUsernameToken does not match an operation. >>>> at >>>> org.apache.cxf.binding.soap.****interceptor.**** >>>> SoapActionInInterceptor$** >>>> SoapActionInAttemptTwoIntercep****tor.handleMessage(** >>>> SoapActionInInterceptor.java:****188) >>>> at >>>> org.apache.cxf.binding.soap.****interceptor.**** >>>> SoapActionInInterceptor$** >>>> SoapActionInAttemptTwoIntercep****tor.handleMessage(** >>>> SoapActionInInterceptor.java:****162) >>>> at >>>> org.apache.cxf.phase.****PhaseInterceptorChain.****doIntercept(** >>>> PhaseInterceptorChain.java:****271) >>>> at >>>> org.apache.cxf.transport.****ChainInitiationObserver.****onMessage(** >>>> ChainInitiationObserver.java:****121) >>>> at >>>> org.apache.cxf.transport.http.****AbstractHTTPDestination.****invoke(** >>>> AbstractHTTPDestination.java:****238) >>>> at >>>> org.apache.cxf.transport.****servlet.ServletController.**** >>>> invokeDestination( >>>> **ServletController.java:222) >>>> at >>>> org.apache.cxf.transport.****servlet.ServletController.** >>>> invoke(ServletController.java:****202) >>>> at >>>> org.apache.cxf.transport.****servlet.ServletController.** >>>> invoke(ServletController.java:****137) >>>> at >>>> org.apache.cxf.transport.****servlet.CXFNonSpringServlet.** >>>> invoke(CXFNonSpringServlet.****java:158) >>>> at >>>> org.apache.cxf.transport.****servlet.AbstractHTTPServlet.**** >>>> handleRequest(** >>>> AbstractHTTPServlet.java:239) >>>> at >>>> org.apache.cxf.transport.****servlet.AbstractHTTPServlet.** >>>> doPost(AbstractHTTPServlet.****java:159) >>>> at javax.servlet.http.****HttpServlet.service(**** >>>> HttpServlet.java:754) >>>> at >>>> org.apache.cxf.transport.****servlet.AbstractHTTPServlet.** >>>> service(AbstractHTTPServlet.****java:215) >>>> at >>>> org.eclipse.jetty.servlet.****ServletHolder.handle(** >>>> ServletHolder.java:648) >>>> at >>>> org.eclipse.jetty.servlet.****ServletHandler.doHandle(** >>>> ServletHandler.java:455) >>>> at >>>> org.eclipse.jetty.server.****handler.ContextHandler.** >>>> doHandle(ContextHandler.java:****1072) >>>> at >>>> org.eclipse.jetty.servlet.****ServletHandler.doScope(** >>>> ServletHandler.java:382) >>>> at >>>> org.eclipse.jetty.server.****handler.ContextHandler.** >>>> doScope(ContextHandler.java:****1006) >>>> at >>>> org.eclipse.jetty.server.****handler.ScopedHandler.handle(**** >>>> ScopedHandler.java:135) >>>> at >>>> org.eclipse.jetty.server.****handler.****ContextHandlerCollection.**** >>>> handle(** >>>> ContextHandlerCollection.java:****255) >>>> at >>>> org.eclipse.jetty.server.****handler.HandlerWrapper.handle(**** >>>> HandlerWrapper.java:116) >>>> at org.eclipse.jetty.server.****Server.handle(Server.java:361) >>>> at >>>> org.eclipse.jetty.server.****AbstractHttpConnection.**** >>>> handleRequest(** >>>> AbstractHttpConnection.java:****485) >>>> at >>>> org.eclipse.jetty.server.****AbstractHttpConnection.****content(** >>>> AbstractHttpConnection.java:****937) >>>> at >>>> org.eclipse.jetty.server.****AbstractHttpConnection$** >>>> RequestHandler.content(****AbstractHttpConnection.java:****998) >>>> at org.eclipse.jetty.http.****HttpParser.parseNext(** >>>> HttpParser.java:856) >>>> at org.eclipse.jetty.http.****HttpParser.parseAvailable(** >>>> HttpParser.java:240) >>>> at >>>> org.eclipse.jetty.server.****AsyncHttpConnection.handle(** >>>> AsyncHttpConnection.java:82) >>>> at >>>> org.eclipse.jetty.io.nio.****SelectChannelEndPoint.handle(**** >>>> SelectChannelEndPoint.java:****627) >>>> at >>>> org.eclipse.jetty.io.nio.****SelectChannelEndPoint$1.run(** >>>> SelectChannelEndPoint.java:51) >>>> at >>>> org.eclipse.jetty.util.thread.****QueuedThreadPool.runJob(** >>>> QueuedThreadPool.java:608) >>>> at >>>> org.eclipse.jetty.util.thread.****QueuedThreadPool$3.run(** >>>> >>>> QueuedThreadPool.java:543) >>>> at java.lang.Thread.run(Unknown Source) >>>> >>>> The debug log which includes CXF, Jetty and our own logging is here: >>>> http://pastebin.com/LXb9vjQD >>>> >>>> The WSDL is here: http://pastebin.com/y12erjaw >>>> >>>> Thank you in advance for any guidance you can give me in figuring this >>>> out. >>>> >>>> Gary >>>> >>>> >>>> -- >>> Glen Mazza >>> Talend Community Coders - coders.talend.com >>> blog: www.jroller.com/gmazza >>> >>> >>> >> > > -- > Glen Mazza > Talend Community Coders - coders.talend.com > blog: www.jroller.com/gmazza > > -- E-Mail: [email protected] | [email protected] JUnit in Action, 2nd Ed: <http://goog_1249600977>http://bit.ly/ECvg0 Spring Batch in Action: <http://s.apache.org/HOq>http://bit.ly/bqpbCK Blog: http://garygregory.wordpress.com Home: http://garygregory.com/ Tweet! http://twitter.com/GaryGregory
