You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by ra...@jpmchase.com on 2005/09/01 21:53:07 UTC

RE: Web Sevice Auto Deployment

Thanks Feng!   why do I get  this error ? 

AxisFault 
 faultCode: {http://xml.apache.org/axis/}Client 
 faultSubcode: 
 faultString: No such operation 'inquiryRequest' 

I am able to go http://testserver:9080/WSWAR/services/DataInquiry     and 
it says 


DataInquiry
Hi there, this is an AXIS service!
Perhaps there will be a form for invoking the service here... 
This means the webservice is available.. but I don't know why it gives me 
No such operation   error.  I deployed the same one on my PC it works fine 
.. but  I need to deploy it in the server 






"Feng Xie \(fxie\)" <fx...@cisco.com>
09/01/2005 03:21 PM
Please respond to axis-user

 
        To:     <ax...@ws.apache.org>
        cc: 
        Subject:        RE: Web Sevice Auto Deployment


Raj:
 
I agree with your understanding about the deployment based my own 
experience. Baseline: while the Axis engine is not running, direct 
editting of server-config.wsdd will has the same effect of running 
ClientAdmin while the Axis engine is running.
 
Feng

From: raj.x.arunmugan@jpmchase.com [mailto:raj.x.arunmugan@jpmchase.com] 
Sent: Thursday, September 01, 2005 3:11 PM
To: axis-user@ws.apache.org
Subject: Web Sevice Auto Deployment 


Hello I created a simple Web Application in WSAD and deployed it 
successfully in my WebSphere Test Environment that comes with WSAD. I ran 
axis AdminClient to deploy the web service and noted that  it created 
server-config.wsdd  under WEB-INF/classes on my workspace 


<?xml version="1.0" encoding="UTF-8"?> 
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> 
 <globalConfiguration> 
  <parameter name="sendMultiRefs" value="true"/> 
  <parameter name="disablePrettyXML" value="true"/> 
  <parameter name="adminPassword" value="admin"/>F 
  <parameter name="dotNetSoapEncFix" value="true"/> 
  <parameter name="enableNamespacePrefixOptimization" value="true"/> 
  <parameter name="sendXMLDeclaration" value="true"/> 
  <parameter name="attachments.implementation" 
value="org.apache.axis.attachments.AttachmentsImpl"/> 
  <parameter name="sendXsiTypes" value="true"/> 
  <requestFlow> 
   <handler type="java:org.apache.axis.handlers.JWSHandler"> 
    <parameter name="scope" value="session"/> 
   </handler> 
   <handler type="java:org.apache.axis.handlers.JWSHandler"> 
    <parameter name="scope" value="request"/> 
    <parameter name="extension" value=".jwr"/> 
   </handler> 
  </requestFlow> 
 </globalConfiguration> 
 <handler name="LocalResponder" type="java:org.apache.axis.transport.local.LocalResponder"/> 
 <handler name="URLMapper" type="java:org.apache.axis.handlers.http.URLMapper"/> 
 <handler name="Authenticate" type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/> 
 <service name="DataInquiry" provider="java:RPC" style="document" use="literal"> 
  <parameter name="wsdlServicePort" value="DataInquiry"/> 
  <parameter name="schemaQualified" value="java:com.ws.exceptions"/> 
  <parameter name="className" 
value="com.ws.datainquiry.DataInquirySOAPBindingSkeleton"/> 
  <parameter name="allowedMethods" value="*"/> 
  <parameter name="typeMappingVersion" value="1.2"/> 
  <parameter name="wsdlServiceElement" value="DataInquiryService"/> 
  <parameter name="wsdlTargetNamespace" value="urn:DataInquiry2"/> 
  <parameter name="wsdlPortType" value="DataInquiry"/> 
  <parameter name="scope" value="Session"/> 
  <parameter name="schemaUnqualified" value="urn:DataInquiry2"/> 
  <typeMapping 
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" 
encodingStyle="" qname="ns1:InvalidDataFormatException" 
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:com.ws.datainquiry.exceptions.InvalidDataFormatException" xmlns:ns1="java:com.ws.exceptions"/> 
  <typeMapping 
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" 
encodingStyle="" qname="ns2:inquiryResponse" 
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:com.ws.datainquiry.InquiryResponse" xmlns:ns2="urn:DataInquiry2"/> 
  <typeMapping 
deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" 
encodingStyle="" qname="ns3:inquiryRequest" 
serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" type="java:com.ws.datainquiry.InquiryRequest" xmlns:ns3="urn:DataInquiry2"/> 
 </service> 
 <service name="AdminService" provider="java:MSG"> 
  <parameter name="allowedMethods" value="AdminService"/> 
  <parameter name="enableRemoteAdmin" value="false"/> 
  <parameter name="className" value="org.apache.axis.utils.Admin"/> 
  <namespace>http://xml.apache.org/axis/wsdd/</namespace> 
  <namespace>http://xml.apache.org/axis/wsdd/</namespace> 
 </service> 
 <service name="Version" provider="java:RPC"> 
  <parameter name="allowedMethods" value="getVersion"/> 
  <parameter name="className" value="org.apache.axis.Version"/> 
 </service> 
 <transport name="http"> 
  <requestFlow> 
   <handler type="URLMapper"/> 
   <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/> 
  </requestFlow> 
  <parameter name="qs:list" 
value="org.apache.axis.transport.http.QSListHandler"/> 
  <parameter name="qs:wsdl" 
value="org.apache.axis.transport.http.QSWSDLHandler"/> 
  <parameter name="qs.list" 
value="org.apache.axis.transport.http.QSListHandler"/> 
  <parameter name="qs.method" 
value="org.apache.axis.transport.http.QSMethodHandler"/> 
  <parameter name="qs:method" 
value="org.apache.axis.transport.http.QSMethodHandler"/> 
  <parameter name="qs.wsdl" 
value="org.apache.axis.transport.http.QSWSDLHandler"/> 
 </transport> 
 <transport name="local"> 
  <responseFlow> 
   <handler type="LocalResponder"/> 
  </responseFlow> 
 </transport> 
</deployment> 

 Then I created a WAR file  and deployed it in Websphere  Application 
Server .. I notice that my  DataInquiry   Web service is listed as one of the service . if I go the   http://testserver:9080/WSWAR/services.( Remember I did not RUN the admin client to deploy the service on the application server)  when I 
try to invoke the service I am getting 

a RemoteException with an AxisFault shown below 

AxisFault 
 faultCode: {http://xml.apache.org/axis/}Client 
 faultSubcode: 
 faultString: No such operation 'inquiryRequest' 

My understanding was.. if  I have the service defined in the 
server-config.wsdd  I don't need to run the admin client  on the 
Application Server inorder to deploy the web service on the application 
server.. since it is defined on  server-config.wsdd .. axis will auto 
deploy the service..( I don't know the mechanism behind admin and version 
web servies , how they are auto deployed ) 

 PLEASE correct me if I am wrong ( I hope so)...  I wanted to run the 
AdminClient but I don't have any user-id and password for the server ..I 
have access only to the Web Sphere Admin Console. to deploy EAR or WAR 
files 

Thanks a lot in advance for your help/
Rja


Re: Web Sevice Auto Deployment

Posted by Mike Woinoski <ne...@pineneedleconsulting.com>.
Raj,
I don't know if this will help, but try changing the style attribute in your 
<service> definition from "document" to "wrapped"

Re: deploying without AdminClient
You're correct: as long as server-config.wsdd is in WEB-INF, you don't need to 
run AdminClient. And AdminService is a huge security hole in a production 
system, so delete the <service> definition for both AdminService and Version 
from your server-config.wsdd.

If you want still want to use deploy.wsdd (e.g., you generated deploy.wsdd with 
WSDL2Java --server-side), generate server-config.wsdd with the Admin utility:
	java org.apache.axis.utils.Admin -server deploy.wsdd

Hope this helps,
Mike

raj.x.arunmugan@jpmchase.com wrote:
> 
> Thanks Feng!   why do I get  this error ?
> 
> AxisFault
> faultCode: {http://xml.apache.org/axis/}Client
> faultSubcode:
> faultString: No such operation 'inquiryRequest'
> 
> I am able to go http://testserver:9080/WSWAR/services/DataInquiry     
> and it says
> 
> 
> *DataInquiry*
> 
> Hi there, this is an AXIS service!
> 
> /Perhaps there will be a form for invoking the service here.../
> 
> This means the webservice is available.. but I don't know why it gives 
> me No such operation   error.  I deployed the same one on my PC it works 
> fine .. but  I need to deploy it in the server
> 
> 
> 
> 
> 
> 	*"Feng Xie \(fxie\)" <fx...@cisco.com>*
> 
> 09/01/2005 03:21 PM
> Please respond to axis-user
> 
> 	       
>         To:        <ax...@ws.apache.org>
>         cc:        
>         Subject:        RE: Web Sevice Auto Deployment
> 
> 
> 
> 
> Raj:
>  
> I agree with your understanding about the deployment based my own 
> experience. Baseline: while the Axis engine is not running, direct 
> editting of server-config.wsdd will has the same effect of running 
> ClientAdmin while the Axis engine is running.
>  
> Feng
> 
> ------------------------------------------------------------------------
> *From:* raj.x.arunmugan@jpmchase.com [mailto:raj.x.arunmugan@jpmchase.com] *
> Sent:* Thursday, September 01, 2005 3:11 PM*
> To:* axis-user@ws.apache.org*
> Subject:* Web Sevice Auto Deployment
> 
> 
> Hello I created a simple Web Application in WSAD and deployed it 
> successfully in my WebSphere Test Environment that comes with WSAD. I 
> ran axis AdminClient to deploy the web service and noted that  it 
> created server-config.wsdd  under WEB-INF/classes on my workspace
> 
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <deployment xmlns="http://xml.apache.org/axis/wsdd/" 
> xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
> <globalConfiguration>
>  <parameter name="sendMultiRefs" value="true"/>
>  <parameter name="disablePrettyXML" value="true"/>
>  <parameter name="adminPassword" value="admin"/>F
>  <parameter name="dotNetSoapEncFix" value="true"/>
>  <parameter name="enableNamespacePrefixOptimization" value="true"/>
>  <parameter name="sendXMLDeclaration" value="true"/>
>  <parameter name="attachments.implementation" 
> value="org.apache.axis.attachments.AttachmentsImpl"/>
>  <parameter name="sendXsiTypes" value="true"/>
>  <requestFlow>
>   <handler type="java:org.apache.axis.handlers.JWSHandler">
>    <parameter name="scope" value="session"/>
>   </handler>
>   <handler type="java:org.apache.axis.handlers.JWSHandler">
>    <parameter name="scope" value="request"/>
>    <parameter name="extension" value=".jwr"/>
>   </handler>
>  </requestFlow>
> </globalConfiguration>
> <handler name="LocalResponder" 
> type="java:org.apache.axis.transport.local.LocalResponder"/>
>  <handler name="URLMapper" 
> type="java:org.apache.axis.handlers.http.URLMapper"/>
> <handler name="Authenticate" 
> type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>
> <service name="DataInquiry" provider="java:RPC" style="document" 
> use="literal">
>  <parameter name="wsdlServicePort" value="DataInquiry"/>
>  <parameter name="schemaQualified" value="java:com.ws.exceptions"/>
>  <parameter name="className" 
> value="com.ws.datainquiry.DataInquirySOAPBindingSkeleton"/>
>  <parameter name="allowedMethods" value="*"/>
>  <parameter name="typeMappingVersion" value="1.2"/>
>  <parameter name="wsdlServiceElement" value="DataInquiryService"/>
>  <parameter name="wsdlTargetNamespace" value="urn:DataInquiry2"/>
>  <parameter name="wsdlPortType" value="DataInquiry"/>
>  <parameter name="scope" value="Session"/>
>  <parameter name="schemaUnqualified" value="urn:DataInquiry2"/>
>  <typeMapping 
> deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" 
> encodingStyle="" qname="ns1:InvalidDataFormatException" 
> serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" 
> type="java:com.ws.datainquiry.exceptions.InvalidDataFormatException" 
> xmlns:ns1="java:com.ws.exceptions"/>
>  <typeMapping 
> deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" 
> encodingStyle="" qname="ns2:inquiryResponse" 
> serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" 
> type="java:com.ws.datainquiry.InquiryResponse" 
> xmlns:ns2="urn:DataInquiry2"/>
>  <typeMapping 
> deserializer="org.apache.axis.encoding.ser.BeanDeserializerFactory" 
> encodingStyle="" qname="ns3:inquiryRequest" 
> serializer="org.apache.axis.encoding.ser.BeanSerializerFactory" 
> type="java:com.ws.datainquiry.InquiryRequest" 
> xmlns:ns3="urn:DataInquiry2"/>
> </service>
> <service name="AdminService" provider="java:MSG">
>  <parameter name="allowedMethods" value="AdminService"/>
>  <parameter name="enableRemoteAdmin" value="false"/>
>  <parameter name="className" value="org.apache.axis.utils.Admin"/>
>  <namespace>http://xml.apache.org/axis/wsdd/</namespace>
>  <namespace>http://xml.apache.org/axis/wsdd/</namespace>
> </service>
> <service name="Version" provider="java:RPC">
>  <parameter name="allowedMethods" value="getVersion"/>
>  <parameter name="className" value="org.apache.axis.Version"/>
>  </service>
> <transport name="http">
>  <requestFlow>
>   <handler type="URLMapper"/>
>   <handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
>  </requestFlow>
>  <parameter name="qs:list" 
> value="org.apache.axis.transport.http.QSListHandler"/>
>  <parameter name="qs:wsdl" 
> value="org.apache.axis.transport.http.QSWSDLHandler"/>
>  <parameter name="qs.list" 
> value="org.apache.axis.transport.http.QSListHandler"/>
>  <parameter name="qs.method" 
> value="org.apache.axis.transport.http.QSMethodHandler"/>
>  <parameter name="qs:method" 
> value="org.apache.axis.transport.http.QSMethodHandler"/>
>  <parameter name="qs.wsdl" 
> value="org.apache.axis.transport.http.QSWSDLHandler"/>
> </transport>
> <transport name="local">
>  <responseFlow>
>   <handler type="LocalResponder"/>
>  </responseFlow>
> </transport>
> </deployment>
> 
> Then I created a WAR file  and deployed it in Websphere  Application 
> Server .. I notice that my  DataInquiry   Web service is listed as one 
> of the service . if I go the   http://testserver:9080/WSWAR/services.( 
> Remember I did not *RUN *the admin client to deploy the service on the 
> application server)  when I try to invoke the service I am getting
> 
> a RemoteException with an AxisFault shown below
> 
> AxisFault
> faultCode: {http://xml.apache.org/axis/}Client
> faultSubcode:
> faultString: No such operation 'inquiryRequest'
> 
> My understanding was.. if  I have the service defined in the 
> server-config.wsdd  I don't need to run the admin client  on the 
> Application Server inorder to deploy the web service on the application 
> server.. since it is defined on  server-config.wsdd .. axis will auto 
> deploy the service..( I don't know the mechanism behind admin and 
> version web servies , how they are auto deployed )
> 
> PLEASE correct me if I am wrong ( I hope so)...  I wanted to run the 
> AdminClient but I don't have any user-id and password for the server ..I 
> have access only to the Web Sphere Admin Console. to deploy EAR or WAR 
> files
> 
> Thanks a lot in advance for your help/
> Rja
>