You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Jan Reise <ja...@yahoo.de> on 2007/12/13 15:13:25 UTC

working with rpc/literal vs. rpc/encoded


Hi,







I am fairly new to working with web services and currently trying to implement a web service prototype using CFX. I have written a junit test basically following the CFX how-to (test class code included below).







Now I am getting an unexpected error (stacktrace included below). From an earlier message (www.mail-archive.com/cxf-user@incubator.apache.org/msg03561.html) I understand that CFX is treating my service as RPC/Encoded but supports only RPC/Literal. I'd be grateful for any pointers to how to make my service non-encoded.







Thanks in advance

Jan







Stack trace:







13.12.2007 11:13:43 org.apache.cxf.phase.PhaseInterceptorChain doIntercept

INFO: Interceptor has thrown exception, unwinding now

org.apache.cxf.interceptor.Fault: Unmarshalling Error: unexpected element (uri:"", local:"return"). Expected elements are (none)

	at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:559)

	at org.apache.cxf.jaxb.JAXBEncoderDecoder.unmarshall(JAXBEncoderDecoder.java:465)

	at org.apache.cxf.jaxb.io.DataReaderImpl.read(DataReaderImpl.java:40)

	at org.apache.cxf.interceptor.DocLiteralInInterceptor.getPara(DocLiteralInInterceptor.java:234)

	at org.apache..cxf.interceptor.DocLiteralInInterceptor.handleMessage(DocLiteralInInterceptor.java:120)

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

	at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:402)

	at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1948)

	at org..apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1791)

	at org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:47)

	at org.apache..cxf.io.CachedOutputStream.close(CachedOutputStream.java:157)

	at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66)

	at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:575)

	at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)

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

	at org.apache..cxf.endpoint.ClientImpl.invoke(ClientImpl.java:254)

	at org.apache.cxf..endpoint.ClientImpl.invoke(ClientImpl.java:205)

	at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73)

	at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:135)

	at $Proxy22.getStartpageToolItem(Unknown Source)

	at com.aperto.wj2008.ws.prototype.StartpageToolControllerTest.testGetStartpageToolItem(StartpageToolControllerTest.java:27)

	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:585)

	at junit.framework.TestCase.runTest(TestCase.java:164)

	at junit.framework.TestCase.runBare(TestCase.java:130)

	at junit.framework.TestResult$1.protect(TestResult.java:106)

	at junit.framework.TestResult.runProtected(TestResult.java:124)

	at junit.framework.TestResult.run(TestResult.java:109)

	at junit.framework.TestCase.run(TestCase.java:120)

	at junit.framework.TestSuite.runTest(TestSuite.java:230)

	at junit.framework.TestSuite.run(TestSuite.java:225)

	at junit.textui.TestRunner.doRun(TestRunner.java:121)

	at com.intellij.rt.execution.junit.IdeaTestRunner.doRun(IdeaTestRunner.java:65)

	at junit.textui.TestRunner.doRun(TestRunner.java:114)

	at com.intellij.rt.execution.junit.IdeaTestRunner.startRunnerWithArgs(IdeaTestRunner.java:24)

	at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:118)

	at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:40)







---







java code:







---







public class StartpageToolControllerTest extends TestCase {







    private static final String ADDRESS = "http://localhost:9000/startpageTool";







    private StartpageTool _client;







    @Override

    protected void setUp() throws Exception {

        createServer();

        createClient();

    }







    public void testGetStartpageToolItem() {

        int id = 1;

        StartpageToolItem item = _client.getStartpageToolItem(id);

        assertNotNull("item must not be null", item);

        assertEquals("copy text must be 'I am text.'", "I am text.", item.getCopyText());







        id = 2;

        item = _client.getStartpageToolItem(id);

        assertNull("item must be null", item);

    }







    private void createServer() {

        Runnable server = new Runnable() {

            public void run() {

                StartpageToolController controller = new StartpageToolController();

                Endpoint.publish(ADDRESS, controller);

            }

        };

        server.run();

    }







    private void createClient() {

        JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();

        factory.getInInterceptors().add(new LoggingInInterceptor());

        factory.getOutInterceptors().add(new LoggingOutInterceptor());

        factory.setServiceClass(StartpageTool.class);

        factory.setAddress(ADDRESS);

        _client = (StartpageTool) factory.create();

    }







--





       __________________________________  Ihre erste Baustelle? Wissenswertes für Bastler und Hobby Handwerker. www.yahoo.de/clever