[MOBY-dev] Deploy jMoby Service

Karl Spies spies at ipk-gatersleben.de
Fri Jul 21 07:52:26 UTC 2006


Hi,

>    It's a bit strange because the class that represents a moby service
> does not have any abstract method. The generated skeleton has, but your
> implementation class (that extends the skeleton and implements method 
> processIt()) does not have. And it is the implementation class that is
> used to be deployed.

You are right about that the implementation class does not have any
abstract method. This is my fault. I am trying to explain it again. :-)
The main concept of moses service generation is to extend the
org.biomoby.service.BaseService and put all needed stuff in it. The
service providers only needs to overwrite the abstract process method
from BaseService in there implementation class. The Oracle system don't
like this. I don't know why. I think its stupid. :-(

>    Okay, good to know. So why not just to implement (actually to extend)
> this interface in your implementation class? I may not understand fully
> the concept of the Remote interface, but a brief reading of javadoc tells
> me that "Only those methods specified in a 'remote interface', an
> interface that extends java.rmi.Remote are available remotely." Which
> indicates that perhaps something like this could work (assuming, for
> example, that your service name is 'HelloOracle'):
> 
>      // this class is generated by MoSeS
>      abstract class your.authority.HelloOracleSkel {...}
> 
>      // this clas is deployed as a web service main class
>      class your.package.HelloOracleImpl
>         extends your.authority.HelloOracleSkel
>         implements HelloOracleRemote {
>         ...
>      }
> 
>      // this interface should make oracle happy
>      interface HelloOracleRemote
>         extends java.rmi.Remote {
>         String HelloOracle (Object data);
>      }
> 

I done it exactly like you, but the HelloOracleSkel extends the
BaseService and again oracle fails to execute the service. My solution
was to copy the BaseService, rename it, and change the abstract method
into a "normal" method.


Karl




More information about the MOBY-dev mailing list