users@jax-rpc.java.net

RE: problem with WSDL file, "jaxrpc compilation exception" in .ear deploy step

From: Merten Schumann <Merten.Schumann_at_asg.com>
Date: Tue, 13 Jul 2004 11:31:33 +0200

Hello,

don't know if it's the correct group and all (how to send feedback to
J2EE 1.4 RI team?), but I think it's JAX-RPC stuff wrapped in Sun App
Server 8.0:

My service WSDL has now two ports.

   <service name="WuergService">
      <port name="WuergPort" binding="tns:WuergBinding">
         <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
      </port>
      <port name="WuergPort2" binding="tns:WuergBinding2">
         <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
      </port>
   </service>

But, at least in Sun App Server 8.0 (will try it with WebSphere later),
only the first occurrence of REPLACE_WITH_ACTUAL_URL has been replaced,
when I gather the WSDL from the server ...

There's an easy work-around for now since I could simply write a
hard-coded URL to the second port.

Anyway, this is not applicable if I want to deploy the stuff on some
other host. Is there any work-around for this problem?

Thanx!
   Merten

> -----Original Message-----
> From: Merten Schumann [mailto:Merten.Schumann_at_asg.com]
> Sent: Tuesday, July 13, 2004 10:24 AM
> To: users_at_jax-rpc.dev.java.net
> Subject: RE: problem with WSDL file, "jaxrpc compilation
> exception" in .ear deploy step
>
> Hello,
>
> found a solution, problem was usage of same <portType> twice. I
> introduced a <portType name="Wuerg2" ../> for my non WS-I compliant
> port. Deploy step worked fine then and I can use the service now with
> WS-I compliant and "older" SOAP clients.
>
> BTW: schema validation did not prevent me from making the fault.
> Exception message in server logfile was not helpful.
>
> Merten
>
> > -----Original Message-----
> > From: Merten Schumann [mailto:Merten.Schumann_at_asg.com]
> > Sent: Monday, July 12, 2004 1:44 PM
> > To: users_at_jax-rpc.dev.java.net
> > Subject: problem with WSDL file, "jaxrpc compilation
> > exception" in .ear deploy step
> >
> > Hello,
> >
> > this is some WSDL which defines two ports. What I want is
> > both, an WS-I
> > compliant and an "old" port specification in my WSDL. I hope
> > in this way
> > more SOAP client implementations will have a chance to use my web
> > service.
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <definitions name="WuergService" targetNamespace="urn:Foo"
> > xmlns:tns="urn:Foo" xmlns="http://schemas.xmlsoap.org/wsdl/"
> > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
> > <types/>
> > <message name="Wuerg_sayHello">
> > <part name="String_1" type="xsd:string"/>
> > </message>
> > <message name="Wuerg_sayHelloResponse">
> > <part name="result" type="xsd:string"/>
> > </message>
> > <portType name="Wuerg">
> > <operation name="sayHello" parameterOrder="String_1">
> > <input message="tns:Wuerg_sayHello"/>
> > <output message="tns:Wuerg_sayHelloResponse"/>
> > </operation>
> > </portType>
> > <binding name="WuergBinding" type="tns:Wuerg">
> > <soap:binding transport="http://schemas.xmlsoap.org/soap/http"
> > style="rpc"/>
> > <operation name="sayHello">
> > <soap:operation soapAction=""/>
> > <input>
> > <soap:body use="literal" namespace="urn:Foo"/>
> > </input>
> > <output>
> > <soap:body use="literal" namespace="urn:Foo"/>
> > </output>
> > </operation>
> > </binding>
> > <!-- non WS-I compliant -->
> > <binding name="WuergBinding2" type="tns:Wuerg">
> > <soap:binding transport="http://schemas.xmlsoap.org/soap/http"
> > style="rpc"/>
> > <operation name="sayHello">
> > <soap:operation soapAction=""/>
> > <input>
> > <soap:body
> > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> > use="encoded"
> > namespace="urn:Foo"/>
> > </input>
> > <output>
> > <soap:body
> > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> > use="encoded"
> > namespace="urn:Foo"/>
> > </output>
> > </operation>
> > </binding>
> > <service name="WuergService">
> > <port name="WuergPort" binding="tns:WuergBinding">
> > <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
> > </port>
> > <port name="WuergPort2" binding="tns:WuergBinding2">
> > <soap:address location="REPLACE_WITH_ACTUAL_URL"/>
> > </port>
> > </service>
> > </definitions>
> >
> > According to http://schemas.xmlsoap.org/wsdl/ the WSDL is valid.
> >
> > But when I try to deploy it (the .ear) in Sun J2EE RI 1.4 (Sun App
> > Server 8.0), I do get this exception:
> >
> > [#|2004-07-12T13:17:31.687+0200|SEVERE|sun-appserver-pe8.0|jav
> > ax.enterpr
> > ise.system.tools.deployment|_ThreadID=44;|Exception occured in J2EEC
> > Phasecom.sun.enterprise.deployment.backend.IASDeploymentExcept
> > ion: Error
> > while loading application [WuergServiceApp]. Please refer to
> > the server
> > log for more details.
> > com.sun.enterprise.deployment.backend.IASDeploymentException: Fatal
> > Error from EJB Compiler -- jaxrpc compilation exception at
> > com.sun.enterprise.webservice.codegen.JaxRpcRICodegen.accept(J
> > axRpcRICod
> > egen.java:203)
> >
> > What's wrong with my WSDL?
> > I created two source files for the "handwritten" WSDL with wscompile
> > (Ant task), one with features="wsi" and one without ...
> >
> > Thank you!
> > Merten

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe_at_jax-rpc.dev.java.net
For additional commands, e-mail: users-help_at_jax-rpc.dev.java.net