[MOBY-l] registering an axis web service

Benjamin Good bmg at sfu.ca
Thu Jun 17 10:13:23 UTC 2004


This seems to be the case when using the MobyRequest class from Paul. 
 Seems like it should also be able to handle a simple string no?

B


mwilkinson wrote:

>It should not be that base64 is *required* by moby.  It is just an option. 
>
>If the code is such that it is now required please say so, because that was not the intention!
>
>M
>
>
>-----Original Message-----
>From: Benjamin Good <bmg at sfu.ca>
>Date: Thu, 17 Jun 2004 17:09:41 
>To:Jiaming Yu <JYu at mail.brc.mcw.edu>, mobyl <moby-l at biomoby.org>
>Subject: Re: [MOBY-l] registering an axis web service
>
>
>
>  
>
>>1.   Concerning the service setting. How do you deploy your service in AXIS,
>>could I get the code to deploy it on my local test?
>> 
>>
>>    
>>
>
>For the simplest possible service that I have got to work.., the clode 
>for the class is:
>
>public class AxisEcho {
>//    echo the request as a byte array - this will result in axis using 
>the base64 encoding type required by moby
>    public static byte[] echoByteArray(String xml_input) {
>          byte[] input_byte = xml_input.getBytes();
>          return input_byte;
>    }
>}
>
>Compile this and put the class file in the axis/WEB-INF/classes 
>directory.  Then deploy it by writing a .wsdd file like this
>
><deployment xmlns="http://xml.apache.org/axis/wsdd/" 
>xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
> <service name="AxisEcho" provider="java:RPC" style="rpc" use="encoded">
>  <parameter name="className" value="AxisEcho"/>
>  <parameter name="allowedMethods" value="echoByteArray"/>
> </service>
></deployment>
>
>and deploy
>java org.apache.axis.client.AdminClient my_deploy.wsdd
>
>next restart tomcat.
>
>next register the service.  I've just been using the perl code to do 
>this although I know you can do it with Martin's java command line 
>client as well.
>
>Here is the relevant code:
>sub register_service {
>#$C is the moby-central instance
>  my $C = shift;
>  my $reg = $C->registerService(
>    serviceName  => $sname,
>    authURI      => $authURI,
>    contactEmail => $email,
>    description  => "Another axis service for testing",
>    URL          => $url,
>    input        => [ ['', ["Object" => []]], ],
>    output       => [ ['', ["Object" => []]], ],
>    category     => "moby",
>    serviceType  => "Retrieval",
>);
>  die "Bad return value from registerService" unless $reg;
>  if ($reg->success == 1){
>    print "Registration successful\n\n"; 
>}
>  else {
>    print "Registration failed: ", $reg->message, "\n";
>  }
>}
>
>There are more examples of perl registration code at 
>http://biomoby.org/moby-live/Perl/scripts/testMOBYClientCentral_v05.pl
>
>  
>
>>2.  Concerning the http://localhost:8080/axis/services/biomoby.services
>><http://localhost:8080/axis/services/biomoby.services> 
>>
>>My understanding is , your class name is EchoXML, and RPC method is
>>echoXMLString, which return a xml file following MOBY response policy (not
>>in detail here). Is that right ?
>> 
>>
>>    
>>
>Thats the idea.  Sorry for leaving an unreachable URL up there - I guess 
>maybe that helped push Mark to put up the test central :)
>
>  
>
>>3. In your June 9 email, 
>> 
>>
>>    
>>
>>>>Registration
>>>>succeeds, but I can't get anything back from the service. 
>>>>     
>>>>
>>>>        
>>>>
>>Do you mean you when you query the service list, you can not find your
>>registration? I succeed in register and query my registration using Sanger's
>>MobyCmdLineClient.java. Could try it to see if it helps
>>
>>    
>>
> I was actually using the wrong name..  You can register anything, there 
>is no error-checking for bad urls or method names at the time of 
>registration.  So, if you put up an incorrect name you can see it, but 
>will get a service returned no response message when you try to access it.
>
>  
>
>>>>wsdl generated by MobyCentral doesn't match the WSDL generated locally
>>>>     
>>>>
>>>>        
>>>>
>>
>>You list the WSDL file which I think got by 
>>
>>http://localhost:8080/axis/services/YOURDEFINE?wsdl
>><http://localhost:8080/axis/services/YOURDEFINE?wsdl> 
>>
>>right? So Is that what your meaned "generated by MobyCentral" or "the WSDL
>>generated locally"  ?
>>
>>
>>    
>>
>This is what I mean by generated locally. If you check the wsdl coming 
>back from requests to moby central you will see a much stripped down 
>version of the wsdl supplied by axis.
>
>One of my goals for the next few weeks or so is to produce a complete 
>working example of an axis moby service that can be deployed in tomcat 
>immediately as a war file.  Hopefully that will help get other newbie 
>java developers such as myself who are also new to web services and moby 
>up and running faster.  
>
>I still have not convinced the sysadmin to open my tomcat port so can't 
>share my services just yet :(
>
>Hope that helps a bit, see also the mail from Viji.
>-Ben
>
>
>
>
>_______________________________________________
>moby-l mailing list
>moby-l at biomoby.org
>http://biomoby.org/mailman/listinfo/moby-l
>
>!!!!!!!!!!!!!!!!
>To respond to this message you MUST send your response to (note new address!)
>
>markw_mobile2 at illuminae dot com
>
>Responses to the reply-to address go directly to trash!
>!!!!!!!!!!!!!!!!!!!!!!!!!!!!
>
>
>  
>





More information about the moby-l mailing list