[MOBY-l] registering an axis web service

mwilkinson mwilkinson at mobile.rogers.com
Thu Jun 17 02:13:44 UTC 2004


Probably not a simple string.  The problem is that we are passing "fully valid" XML messages inside a soap envelope, which is itself a fully valid XML message.  The result is that you have an XML header isside of an XML message, and that is illegal XML.  This is the reason that we base64 encode, or at a minimum escape the MOBY message - it cannot be passed verbatim because that makes the surrounding soap message invalid.

M

-----Original Message-----
From: Benjamin Good <bmg at sfu.ca>
Date: Thu, 17 Jun 2004 18:13:23 
To:mwilkinson <mwilkinson at mobile.rogers.com>
Cc:JYu at mail.brc.mcw.edu, moby-l at biomoby.org
Subject: Re: [MOBY-l] registering an axis web service

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!
>!!!!!!!!!!!!!!!!!!!!!!!!!!!!
>
>
>  
>



!!!!!!!!!!!!!!!!
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