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 13:06:01 UTC
RPC/Literal vs. Encoded
Hi,
I am trying to implement a web service prototype using CFX. I have implemented 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();
}
--
Jetzt Mails schnell in einem Vorschaufenster überfliegen. Dies und viel mehr bietet das neue Yahoo! Mail - www.yahoo.de/mail
Re: RPC/Literal vs. Encoded
Posted by Glen Mazza <gl...@verizon.net>.
Am Donnerstag, den 13.12.2007, 12:06 +0000 schrieb Jan Reise:
> Hi,
>
>
> I am trying to implement a web service prototype using CFX. I have implemented 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
>
You'll want to stay away from the deprecated RPC/encoded and use DOC/Lit
or RPC/lit instead. [1] is an explanation of the different types of
WSDL's; [2] my experiences with WSDL creation; [3] how to create a
WSDL-first web service with Ant, and same thing [4] with Maven.
HTH,
Glen
[1] http://www.ibm.com/developerworks/webservices/library/ws-whichwsdl/
[2] http://www.jroller.com/gmazza/date/20071004
[3] http://www.jroller.com/gmazza/date/20071019 (Ant)
[4] http://www.jroller.com/gmazza/date/20071205 (Maven version of above)