[jboss-user] [JBossWS] - Re: JSR-109Client, Mapping problem and trying to connect to

d_pavel do-not-reply at jboss.com
Wed Apr 11 12:39:12 EDT 2007


OK this is what I discovered:
The "Could not update IN parameter to be INOUT..." error comes from processOutputDocElement method inside JAXRPCMetaDataBuilder class. The processOutputDocElement is called from 
anonymous wrote : 
  | buildParameterMetaDataDoc(OperationMetaData opMetaData, WSDLInterfaceOperation wsdlOperation, ServiceEndpointMethodMapping seiMethodMapping,TypeMappingImpl typeMapping)
  | 
Now the description of this class is mentioning: "A meta data builder that is based on webservices.xml." So I supposed that this error occurs due to issues related to my webservices.xml.
Here is my webservices.xml  :

  | <webservices version='1.1' xmlns='http://java.sun.com/xml/ns/j2ee' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://java.sun.com/xml/ns/j2ee http://www.ibm.com/webservices/xsd/j2ee_web_services_1_1.xsd'>
  |  <webservice-description>
  |   <webservice-description-name>Vax</webservice-description-name>
  |   <wsdl-file>WebRoot/WEB-INF/wsdl/Vax.wsdl</wsdl-file>
  |   <jaxrpc-mapping-file>WebRoot/WEB-INF/jaxrpc-mapping.xml</jaxrpc-mapping-file>
  |   <port-component>
  |    <port-component-name>VaxSoapPort</port-component-name>
  |    <!--   wsdl-port xmlns:portNS='https://www.acompany.com/VaxHttpTest/Vax.asmx'>portNS:VaxSoapPort</wsdl-port  -->
  |    anonymous wrote : <wsdl-port xmlns:portNS='https://www.acompany.com/VaxHttpTest/VaxSoap'>portNS:VaxSoapPort</wsdl-port>  
  |    <service-endpoint-interface>ca.agenthttp.vax.VaxSoap</service-endpoint-interface>
  |    <service-impl-bean>
  |     <servlet-link>VaxSoap</servlet-link>
  |    </service-impl-bean>
  |   </port-component>
  |  </webservice-description>
  | </webservices>
  | 

Now from the docs we know:
anonymous wrote : 
  | The port-component-name element specifies a port component's name.  This name is assigned by the module producer to name the service implementation bean in the module's deployment descriptor. The name must be unique among the port component names defined in the same module.
  | Used in: port-component
  | Example:
  | 			<port-component-name>EmployeeService
  | 			</port-component-name>
  | 
So according to this the wsdl-port tag line should be like this:
anonymous wrote : 
  | <wsdl-port xmlns:portNS='https://www.acompany.com/VaxHttpTest/VaxSoap'>portNS:VaxSoapPort</wsdl-port>
  | 

I tried also to provide the target namespace like in the commented line:
anonymous wrote : 
  | <!--   wsdl-port xmlns:portNS='https://www.acompany.com/VaxHttpTest/Vax.asmx'>portNS:VaxSoapPort</wsdl-port  -->
  | 
(even if I know the correct use is like in the previous uncommented line) but with same error results:
anonymous wrote : 
  | Could not update IN parameter to be INOUT, as indicated in the mapping: parameters
  | 

Is it possible that this occurs because the wsdl location URL points to
anonymous wrote : 
  | https://www.acompany.com/VaxHttp/Vax?wsdl
  | 
but the real SEI is in fact "VaxSoap" class ???
Let me explain: "Vax" referenced in URL is just a simple javax.xml.rpc.Service and looks like this:

  | /*  
  | * JBoss, the OpenSource EJB server
  | * Distributable under LGPL license. See terms of license at gnu.org.
  | */
  | 
  | //Auto Generated by jbossws - Please do not edit!!!
  | 
  | package ca.agenthttp.vax;
  | 
  | 
  | import javax.xml.rpc.*; 
  | 
  | 
  | public interface  Vax extends  javax.xml.rpc.Service
  | {
  | 
  |      public ca.agenthttp.vax.VaxSoap getVaxSoap() throws ServiceException;
  | 
  | }
  | 
Now the ca.agenthttp.vax.VaxSoap is my real SEI which contains references to all the published methods which are web servable.

Please confirm to me if this webservices.xml is properly configured or if I have to reconfigure some other .xml files.

Last but not least this is my jboss-client.xml file:

  | <?xml version="1.0" encoding="UTF-8"?>
  | 
  | <jboss-client>
  | 	<jndi-name>jbossws-client</jndi-name>
  | 	<service-ref>
  | 		<service-ref-name>Vax</service-ref-name>
  | 		<wsdl-override>
  | https://www.acompany.com/VaxHttpTest/Vax.asmx?wsdl		
  | 		</wsdl-override>
  | 	</service-ref>
  | </jboss-client>
  | 

The service defined in Wax.wsdl looks like this:

  |   <wsdl:service name="Vax">
  |     <wsdl:port name="VaxSoap" binding="tns:VaxSoap">
  |       <soap:address location="https://www.acompany.com/VaxHttpTest/Vax.asmx" />
  |     </wsdl:port>
  |   </wsdl:service>
  | 

Any suggestions ?

View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4036444#4036444

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4036444



More information about the jboss-user mailing list