I have a problem getting my client and server to work. I
tried the examples and they work just fine. But when using my own
client and server I get the following error:
org.eclipse.riena.
communication.core.RemoteFailure: Error while invoking remote service
at org.eclipse.riena.internal.communication.core.factory.CallHooksProxy.invoke(CallHooksProxy.java:71)
at $Proxy12.helloProject(Unknown Source)
at com.forcedge.pamoja.client.Activator.start(Activator.java:47)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl$1.run(BundleContextImpl.java:807)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.framework.internal.core.BundleContextImpl.startActivator(BundleContextImpl.java:798)
... 33 more
Caused by: com.caucho.hessian.client.HessianRuntimeException: java.io.FileNotFoundException:
http://localhost:8080/hessian/ProjectServiceWS?helloProject&RID-ed7ulctj
at com.caucho.hessian.client.HessianProxy.invoke(HessianProxy.java:182)
at $Proxy11.helloProject(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
The
error occurs when my proxy service wants to access the remote service.
I think the server part works fine: I can see the service being
published and when I use the webservice url in a browser I get:
HTTP ERROR: 405
Hessian requires POST
RequestURI=/hessian/ProjectServiceWS
Powered by Jetty://
So the service is at least found.
I see someone else having this problem also but unfortunately I don't see a solution posted:
http://dev.eclipse.org/mhonarc/lists/riena-dev/msg00484.html.
I must be doing something wrong at the client, but for now I fail
to see the differences between the samples and what I am doing. So I
hope someone can help.
I use eclipse 3.5 M6 and the plugins are 3.5 plugins as well. The runtime is Java 1.6. I use Riena 1.1.0 M6.
Below is the code in my client plugin Activator.start() method:
//Register the remote service proxy
regProjectService = Register.remoteProxy(IProjectService.class).usingUrl("
http://localhost:8080/hessian/ProjectServiceWS").withProtocol(REMOTE_PROTOCOL_HESSIAN).andStart(context);
//get the service and call it for our example
ServiceReference ref = context.getServiceReference(IProjectService.class.getName());
IProjectService service = (IProjectService)context.getService(ref);
Project project = service.helloProject("1");
System.out.println(project);
Thanks,
Sjoerd