Thanks for your reply

I have a test case like this:

public class CXFTest extends CamelTestSupport {
        
        protected static Endpoint endpoint;
        protected static WebServiceTestImpl implementor;
        
        public static String proxyAddress = "http://localhost:11000/cxf/proxy/";;
        public static String realServiceAddress =
"http://localhost:12000/cxf/service/";;
        
        @Override
        protected RouteBuilder createRouteBuilder() {
                return new RouteBuilder() {
                        public void configure() {
                                from("cxf://" + proxyAddress + 
"?dataFormat=PAYLOAD")
                                .to("cxf://" + realServiceAddress + 
"?dataFormat=PAYLOAD");
                        }
                };
        }
        
        @Test
        public void invokeSayHelloMethod() throws Exception {
                JaxWsDynamicClientFactory dcf = 
JaxWsDynamicClientFactory.newInstance();
                Client client = dcf.createClient(proxyAddress + "?wsdl");
                //BindingOperationInfo oi = new BindingOperationInfo();
                Object[] res = client.invoke("sayHello", "xiaoMing");
                if(res.length > 0){
                        System.out.println("response: " + res[0]); 
                }
        }
        

        @AfterClass
        public static void stopService() {
                if (endpoint != null) {
                        endpoint.stop();
                }
        }

        @BeforeClass
        public static void startService() {
                implementor = new WebServiceTestImpl();
                endpoint = Endpoint.publish(realServiceAddress, implementor);
        }
        
}

The SEI(Service Endpoint Interface) like this:

@WebService(targetNamespace = "http://service.test.com/";)
public interface WebServiceTest {
        
        @WebMethod
        String sayHi();

        @WebMethod
        String sayHello(String name);
}

@WebService(endpointInterface = "WebServiceTest",targetNamespace =
"http://service.test.com/";)
public class WebServiceTestImpl  implements WebServiceTest {

        @Override
        @WebMethod
        public String sayHi()  {
                return "hi";
        }

        @Override
        @WebMethod
        public String sayHello(String name)  {
                return "hello " + name;
        }

}

when running  the test case,it throw an Exception below.
org.apache.cxf.common.i18n.UncheckedException: No operation was found with
the name {http://camel.apache.org/cxf/jaxws/provider}sayHello.
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:331)
        at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:325)
        at
com.rongji.esb.junit.CXFTest.testInvokingServiceFromCXFClient(CXFTest.java:49)
        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.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
        at
org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
        at
org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
        at
org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
        at org.junit.rules.TestWatchman$1.evaluate(TestWatchman.java:48)
        at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
        at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
        at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:76)
        at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
        at
org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
        at
org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
        at
org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
        at
org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
        at
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)

I think the operation is not found, Due to omit both wsdlURL and
serviceClass options.Where I go wrong?








--
View this message in context: 
http://camel.465427.n5.nabble.com/The-Message-header-with-the-name-of-CxfConstants-OPERATION-NAME-tp5738456p5738492.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to