[MOBY-dev] Deploy jMoby Service
Martin Senger
senger at ebi.ac.uk
Thu Jul 20 22:21:37 UTC 2006
Thanks for details about oracle web services requirements. Interesting,
and good to know.
> The reason is, that oracle is very strict with there design of web
> service. You are not allowed to use any abstract method in your
> implementation classes.
>
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.
> An other requirement is that every oracle based web service must have
> an interface which extends from java.rmi.Remote and very method
> declaration must throw a java.rmi.RemoteException.
>
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);
}
> Now my services are running under both runtimes.
>
And that's the main thing! Perfect.
Cheers,
Martin
--
Martin Senger
email: martin.senger at gmail.com
skype: martinsenger
More information about the MOBY-dev
mailing list