You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Ashishz <as...@gmail.com> on 2010/02/02 15:21:45 UTC

Deploying web services in tomcat.

Hello guys,

I am trying to generate stubs for my restful web service using SoapUi 3.1. 
When I try it with Jetty in eclipse, I got proper stubs generated. But same
when I try it with Tomcat, I am getting error.

For deploying in Tomcat, I am using CXfNonSpringServlet. For running into
tomcat, I have to remove 2 jars (xmlbeans-2.4.0.jar and xalen-1.1.jar)
otherwise I am getting linker error. But for jetty no need for removing
these jars. As I am removing these jar, wadl file generated with "type" tag. 
<xs:element maxOccurs="unbounded" minOccurs="0" name="Contact"
type="contact"/> . 

Due to this type attribute, SoapUI is not able to generate proper java
client stubs. SoapUI is pointing to wadl-dist-1.0-SNAPSHOT.jar for
generating stubs.

What my finding is difference between wadl generated by jetty and tomcat is
complex type attribute which is defined somewhere below in wadl file. For
jetty there is no complex type attribute.

Jetty ex:
<xs:element maxOccurs="unbounded" minOccurs="0" name="Contact">
after this line Contact object defination is present.
But for tomcat:
<xs:element maxOccurs="unbounded" minOccurs="0" name="Contact"
type="contact"/> 

and "contact" is defined below in wadl file. When I try to generate with
this wadl file using SoapUI, I am getting error, complex type contact is not
resolved.

What I feel is 2 jars (xmlbeans-2.4.0.jar and xalen-1.1.jar) are required to
generate proper wadl and client stub.

Now my question is, "How can I deploy webservices in tomcat with these 2
jars in it"? One more point, I am running it as osgi bundle not using DOSGi.

-- 
View this message in context: http://old.nabble.com/Deploying-web-services-in-tomcat.-tp27421210p27421210.html
Sent from the cxf-user mailing list archive at Nabble.com.


Re: Deploying web services in tomcat.

Posted by Sergey Beryozkin <sb...@progress.com>.
Hi

The 2nd wadl is indeed broken but as I said, we don't interact directly with any of the jars you've mentioned.
We simply use a JAXB context to generate the schemas thus I've no idea why the schema is generated without complex type 
definitions...
By the way, one will be able to configure WADL to link to external schemas quite shortly in a java-first case...
cheers, Sergey

>
> Hello Sergey,
>
> I am uploading both the wadl which I generated by including 5 jars and
> without 5 jars.
>
> As you know, I am working with OSGI environment, When I include 5 jars and
> include "jaxb-api-2.1.12.jar" in my bundle, I get error "Could not
> initialize class com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder". When I
> remove this jar and put it in tomcat's lib folder, it works fine.
>
> Counterpart, When I remove these 5 jars and "jaxb-api-2.1.12.jar" is in
> tomcat's lib folder, I get similar error. Now I have to modify bundle's
> menifest file and include that jar into my bundle and I can see WADL with
> type tag and name space is not proper.
>
>
> Please have a look at both wadl and suggest how can I remove these jars
> dependencies? http://old.nabble.com/file/p27497247/Desktop.zip Desktop.zip
>
>
> Sergey Beryozkin-2 wrote:
>>
>> Hi
>>
>>
>>>
>>> Hello Sergey,
>>>
>>> Thank you very much for your suggestion...
>>> It worked and my both the problem solved.
>>>
>>> In CXF2.2.6, by default WadlGenerator class has "useSingleSlashResource"
>>> property is true.
>>>
>>> WadlGenerator wd = new WadlGenerator();
>>>      wd.setUseSingleSlashResource(false);
>>>      factory.setProvider(wd);
>>>
>>> With this code snippet we set it to false and magically it worked.. :):)
>>>
>>> Any how we solve our second problem also... but conceptually having a
>>> lots
>>> of doubt.
>>>
>>> We trace down with eclipse jar set up and found what are the jars used by
>>> eclipse and found eclipse is using 5 jars to run in tomcat..
>>> org.eclipse.core.runtime,
>>> org.eclipse.equinox.app.jar,
>>> org.eclipse.core.jobs.jar,
>>> org.eclipse.core.contenttype.jar,
>>> org.eclipse.equinox.preferences.jar
>>>
>>> so placed these jars into tomcat with osgi bundles. These was another
>>> tweak.
>>> Tomcat was unable to use xmlapi-impl2.1.12.jar when we bundle it in our
>>> webservices bundle. Then we removed it from our bundle and placed in
>>> tomcats
>>> lib folder. Error gone and we were able to generate proper stubs.
>>>
>>> Now my doubts are:
>>> 1. If I dont use above mentioned jars.. I get wadl file but complex type
>>> attribute will be attached in wadl. <xs:element maxOccurs="unbounded"
>>> minOccurs="0" name="Contact"  type="contact"/>
>>
>> WADLGenerator does not interact directly with the above jars...Can you
>> please send me the wadls, the one which works and the one
>> which does not (at least the wadl:grammar part) ?
>>
>>>
>>> type is appearing without proper namespace therefore when I try to
>>> generate
>>> stubs, I got error.
>>>
>>> After tracing eclipse setup, I added them with our bundle and I got
>>> proper
>>> wadl..
>>>
>>> My question is, "How these jars are related with wadl generation"???
>>>
>>> Another tweak I mentioned in this post..
>>> jaxb-impl-2.1.12.jar when I keep it in my osgi bundle and add in class
>>> path.. cxf was not able to instantiate.. RuntimeModelBuilder class. Then
>>> I
>>> removed it from my bundle and placed in tomcats lib folder and it
>>> worked..
>>>
>>> My another question is.. "Why it didnt work with my bundle as it was in
>>> classpath"??
>>
>> Not sure, sorry....
>>
>> Sergey
>>
>>>
>>> Again Thank you very much for your suggestion.. Now if you can clear my
>>> doubts.. it will be very helpful for me in future..
>>>
>>> Ashish
>>>
>>>
>>>
>>> Sergey Beryozkin-2 wrote:
>>>>
>>>> Hi
>>>>
>>>> thanks for getting to the bottom of it...
>>>>
>>>>>
>>>>> Hello Sergey,
>>>>>
>>>>> Thank you for your response.
>>>>>
>>>>> I worked on my envionment after posting question and now have 2
>>>>> problems...
>>>>>
>>>>> 1. I used CXF2.2.5 and 2.2.6 versions. The wadl which I generated
>>>>> through
>>>>> 2.2.5 can be generated proper stubs out of it. But with version 2.2.6
>>>>> whatever the wadl is generated, I am not able to generate stubs out of
>>>>> it.
>>>>> When I try to generate stubs from wadl (2.2.6), I get error "JClass
>>>>> name
>>>>> is
>>>>> empty".
>>>>>
>>>>> The difference between both the wadl file is 2.2.6 is adding <resourse
>>>>> path="/"> tag in method defination if @path tag is missing. but the
>>>>> 2.2.5is
>>>>> not adding any resourse  tag if @Path is missing.
>>>>>
>>>>> <resource path="/contact">
>>>>> <resource path="/">
>>>>> <method name="GET"></method>
>>>>> </resource>
>>>>> <resource path="/getstub">
>>>>> <method name="GET"></method>
>>>>> </resource>
>>>>> </resource>
>>>>>
>>>>
>>>> In 2.2.6 multiple methods sharing the same root are listed under a
>>>> single
>>>> resource (though one can configure WADL generator to wrap
>>>> every method), so this is a sideeffect. I believe the above fragment is
>>>> perfectly correct, I asked a similar question on the wadl
>>>> list...Why can't SoapUI be a bit more 'tolerant' so to say (wondering,
>>>> should they be called WebServicesUI instead) ? I think I
>>>> tried to wrap even those methods which have no @Path (internally they
>>>> have
>>>> a '/' path value) to avoid some possible ambiguities to
>>>> do with other resources having to 'inherit' higher level template
>>>> parameters, etc.
>>>>
>>>> Ex, consider you top-level GET method accepting a @PathParam("id")
>>>> value...which at the wadl level will be listed as a template
>>>> parameter visible to both this GET method and the "/getstub" resource.
>>>> Now, when a tool like SoapUI is about to let user to test
>>>> "/getstub", should it also offer it an option to enter the "id" value
>>>> too
>>>> ? I hope you see my point here. A code gen tool would see
>>>> a similar issue.
>>>>
>>>> However in 2.2.6 you can register a WADLGenerator instance as a JAXRS
>>>> provider and set "useSingleSlashResource" property to false.
>>>> This will ensure you see no resources with path="/" (except for the case
>>>> when the very top level root resource has this value)
>>>> Perhaps this property should be set to false by default - I'll update it
>>>>
>>>>>
>>>>> 2. I can run my application from eclipse using 2.2.5 and generate
>>>>> proper
>>>>> stub and run web services very fine. So no issues when I use eclipse.
>>>>> Problem occur when I try to use Tomcat without eclipse. First issue I
>>>>> get
>>>>> is:
>>>>> java.lang.RuntimeException:
>>>>> org.springframework.beans.factory.BeanCreationException: Error creating
>>>>> bean
>>>>> with name 'org.apache.cxf.wsdl.WSDLManager' defined in URL
>>>>> [bundleresource://22.fwk10630672:21/META-INF/cxf/cxf.fixml]:
>>>>> Instantiation
>>>>> of bean failed; nested exception is
>>>>> org.springframework.beans.BeanInstantiationException: Could not
>>>>> instantiate
>>>>> bean class [org.apache.cxf.wsdl11.WSDLManagerImpl]: Constructor threw
>>>>> exception; nested exception is java.lang.NoClassDefFoundError: Could
>>>>> not
>>>>> initialize class com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder
>>>>>
>>>>> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:96)
>>>>>
>>>>> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:86)
>>>>>
>>>>
>>>> CXF JAXRS still indirectly depends on wsdl4j (definirtely will have to
>>>> fixed for 2.3 and maybe for 2.2.7). Please drop it into the
>>>> tomcat lib folder. Oh, you're using OSGI...So install this bundle :
>>>>
>>>> http://svn.apache.org/repos/asf/servicemix/smx4/bundles/tags/org.apache.servicemix.bundles.wsdl4j-1.6.2_2/
>>>>
>>>> thanks, Sergey
>>>>
>>>>>
>>>>> When I try to google it, results directing me, Its classloader problem.
>>>>> Now
>>>>> my question is "How same set up is working from eclipse" and not from
>>>>> Tomcat
>>>>> directly. Any suggestion from running independently in tomcat without
>>>>> eclipse.
>>>>>
>>>>> Ashish
>>>>>
>>>>> Sergey Beryozkin-2 wrote:
>>>>>>
>>>>>> Hi
>>>>>>
>>>>>>>
>>>>>>> Hello guys,
>>>>>>>
>>>>>>> I am trying to generate stubs for my restful web service using SoapUi
>>>>>>> 3.1.
>>>>>>> When I try it with Jetty in eclipse, I got proper stubs generated.
>>>>>>> But
>>>>>>> same
>>>>>>> when I try it with Tomcat, I am getting error.
>>>>>>>
>>>>>>> For deploying in Tomcat, I am using CXfNonSpringServlet. For running
>>>>>>> into
>>>>>>> tomcat, I have to remove 2 jars (xmlbeans-2.4.0.jar and
>>>>>>> xalen-1.1.jar)
>>>>>>> otherwise I am getting linker error. But for jetty no need for
>>>>>>> removing
>>>>>>> these jars. As I am removing these jar, wadl file generated with
>>>>>>> "type"
>>>>>>> tag.
>>>>>>> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact"
>>>>>>> type="contact"/> .
>>>>>>
>>>>>> I do not see how the presense or absense of xmlbeans or xalan jars
>>>>>> could've affected the way a wadl grammar section has been
>>>>>> generated...
>>>>>>
>>>>>>>
>>>>>>> Due to this type attribute, SoapUI is not able to generate proper
>>>>>>> java
>>>>>>> client stubs. SoapUI is pointing to wadl-dist-1.0-SNAPSHOT.jar for
>>>>>>> generating stubs.
>>>>>>>
>>>>>>> What my finding is difference between wadl generated by jetty and
>>>>>>> tomcat
>>>>>>> is
>>>>>>> complex type attribute which is defined somewhere below in wadl file.
>>>>>>> For
>>>>>>> jetty there is no complex type attribute.
>>>>>>>
>>>>>>> Jetty ex:
>>>>>>> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact">
>>>>>>> after this line Contact object defination is present.
>>>>>>
>>>>>> So it is an anonymous complex type, something like
>>>>>> <element name="Contact">
>>>>>>   <complexType>
>>>>>>    ...
>>>>>>   </complexType>
>>>>>> </element>
>>>>>>
>>>>>> ?
>>>>>>> But for tomcat:
>>>>>>> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact"
>>>>>>> type="contact"/>
>>>>>>>
>>>>>>> and "contact" is defined below in wadl file. When I try to generate
>>>>>>> with
>>>>>>> this wadl file using SoapUI, I am getting error, complex type contact
>>>>>>> is
>>>>>>> not
>>>>>>> resolved.
>>>>>>
>>>>>> Are sure it is not something like
>>>>>> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact"
>>>>>> type="tns:contact"/>
>>>>>>
>>>>>> where tns is bound to some namespace ?
>>>>>>
>>>>>> By the way, is it CXF (JAXRS) which generates WADL ? Can you attach
>>>>>> the
>>>>>> WADL instance which SoapUI can not handle ?
>>>>>>
>>>>>> cheers, Sergey
>>>>>>>
>>>>>>> What I feel is 2 jars (xmlbeans-2.4.0.jar and xalen-1.1.jar) are
>>>>>>> required
>>>>>>> to
>>>>>>> generate proper wadl and client stub.
>>>>>>>
>>>>>>> Now my question is, "How can I deploy webservices in tomcat with
>>>>>>> these
>>>>>>> 2
>>>>>>> jars in it"? One more point, I am running it as osgi bundle not using
>>>>>>> DOSGi.
>>>>>>>
>>>>>>> -- 
>>>>>>> View this message in context:
>>>>>>> http://old.nabble.com/Deploying-web-services-in-tomcat.-tp27421210p27421210.html
>>>>>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> -- 
>>>>> View this message in context:
>>>>> http://old.nabble.com/Deploying-web-services-in-tomcat.-tp27421210p27437054.html
>>>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>>>
>>>>
>>>>
>>>>
>>>
>>> -- 
>>> View this message in context:
>>> http://old.nabble.com/Deploying-web-services-in-tomcat.-tp27421210p27452214.html
>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>
>>
>>
>>
>
> -- 
> View this message in context: http://old.nabble.com/Deploying-web-services-in-tomcat.-tp27421210p27497247.html
> Sent from the cxf-user mailing list archive at Nabble.com.
> 


Re: Deploying web services in tomcat.

Posted by Ashishz <as...@gmail.com>.
Hello Sergey,

I am uploading both the wadl which I generated by including 5 jars and
without 5 jars.

As you know, I am working with OSGI environment, When I include 5 jars and
include "jaxb-api-2.1.12.jar" in my bundle, I get error "Could not
initialize class com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder". When I
remove this jar and put it in tomcat's lib folder, it works fine. 

Counterpart, When I remove these 5 jars and "jaxb-api-2.1.12.jar" is in
tomcat's lib folder, I get similar error. Now I have to modify bundle's
menifest file and include that jar into my bundle and I can see WADL with
type tag and name space is not proper.


Please have a look at both wadl and suggest how can I remove these jars
dependencies? http://old.nabble.com/file/p27497247/Desktop.zip Desktop.zip 


Sergey Beryozkin-2 wrote:
> 
> Hi
> 
> 
>>
>> Hello Sergey,
>>
>> Thank you very much for your suggestion...
>> It worked and my both the problem solved.
>>
>> In CXF2.2.6, by default WadlGenerator class has "useSingleSlashResource"
>> property is true.
>>
>> WadlGenerator wd = new WadlGenerator();
>>      wd.setUseSingleSlashResource(false);
>>      factory.setProvider(wd);
>>
>> With this code snippet we set it to false and magically it worked.. :):)
>>
>> Any how we solve our second problem also... but conceptually having a
>> lots
>> of doubt.
>>
>> We trace down with eclipse jar set up and found what are the jars used by
>> eclipse and found eclipse is using 5 jars to run in tomcat..
>> org.eclipse.core.runtime,
>> org.eclipse.equinox.app.jar,
>> org.eclipse.core.jobs.jar,
>> org.eclipse.core.contenttype.jar,
>> org.eclipse.equinox.preferences.jar
>>
>> so placed these jars into tomcat with osgi bundles. These was another
>> tweak.
>> Tomcat was unable to use xmlapi-impl2.1.12.jar when we bundle it in our
>> webservices bundle. Then we removed it from our bundle and placed in
>> tomcats
>> lib folder. Error gone and we were able to generate proper stubs.
>>
>> Now my doubts are:
>> 1. If I dont use above mentioned jars.. I get wadl file but complex type
>> attribute will be attached in wadl. <xs:element maxOccurs="unbounded"
>> minOccurs="0" name="Contact"  type="contact"/>
> 
> WADLGenerator does not interact directly with the above jars...Can you
> please send me the wadls, the one which works and the one 
> which does not (at least the wadl:grammar part) ?
> 
>>
>> type is appearing without proper namespace therefore when I try to
>> generate
>> stubs, I got error.
>>
>> After tracing eclipse setup, I added them with our bundle and I got
>> proper
>> wadl..
>>
>> My question is, "How these jars are related with wadl generation"???
>>
>> Another tweak I mentioned in this post..
>> jaxb-impl-2.1.12.jar when I keep it in my osgi bundle and add in class
>> path.. cxf was not able to instantiate.. RuntimeModelBuilder class. Then
>> I
>> removed it from my bundle and placed in tomcats lib folder and it
>> worked..
>>
>> My another question is.. "Why it didnt work with my bundle as it was in
>> classpath"??
> 
> Not sure, sorry....
> 
> Sergey
> 
>>
>> Again Thank you very much for your suggestion.. Now if you can clear my
>> doubts.. it will be very helpful for me in future..
>>
>> Ashish
>>
>>
>>
>> Sergey Beryozkin-2 wrote:
>>>
>>> Hi
>>>
>>> thanks for getting to the bottom of it...
>>>
>>>>
>>>> Hello Sergey,
>>>>
>>>> Thank you for your response.
>>>>
>>>> I worked on my envionment after posting question and now have 2
>>>> problems...
>>>>
>>>> 1. I used CXF2.2.5 and 2.2.6 versions. The wadl which I generated
>>>> through
>>>> 2.2.5 can be generated proper stubs out of it. But with version 2.2.6
>>>> whatever the wadl is generated, I am not able to generate stubs out of
>>>> it.
>>>> When I try to generate stubs from wadl (2.2.6), I get error "JClass
>>>> name
>>>> is
>>>> empty".
>>>>
>>>> The difference between both the wadl file is 2.2.6 is adding <resourse
>>>> path="/"> tag in method defination if @path tag is missing. but the
>>>> 2.2.5is
>>>> not adding any resourse  tag if @Path is missing.
>>>>
>>>> <resource path="/contact">
>>>> <resource path="/">
>>>> <method name="GET"></method>
>>>> </resource>
>>>> <resource path="/getstub">
>>>> <method name="GET"></method>
>>>> </resource>
>>>> </resource>
>>>>
>>>
>>> In 2.2.6 multiple methods sharing the same root are listed under a
>>> single
>>> resource (though one can configure WADL generator to wrap
>>> every method), so this is a sideeffect. I believe the above fragment is
>>> perfectly correct, I asked a similar question on the wadl
>>> list...Why can't SoapUI be a bit more 'tolerant' so to say (wondering,
>>> should they be called WebServicesUI instead) ? I think I
>>> tried to wrap even those methods which have no @Path (internally they
>>> have
>>> a '/' path value) to avoid some possible ambiguities to
>>> do with other resources having to 'inherit' higher level template
>>> parameters, etc.
>>>
>>> Ex, consider you top-level GET method accepting a @PathParam("id")
>>> value...which at the wadl level will be listed as a template
>>> parameter visible to both this GET method and the "/getstub" resource.
>>> Now, when a tool like SoapUI is about to let user to test
>>> "/getstub", should it also offer it an option to enter the "id" value
>>> too
>>> ? I hope you see my point here. A code gen tool would see
>>> a similar issue.
>>>
>>> However in 2.2.6 you can register a WADLGenerator instance as a JAXRS
>>> provider and set "useSingleSlashResource" property to false.
>>> This will ensure you see no resources with path="/" (except for the case
>>> when the very top level root resource has this value)
>>> Perhaps this property should be set to false by default - I'll update it
>>>
>>>>
>>>> 2. I can run my application from eclipse using 2.2.5 and generate
>>>> proper
>>>> stub and run web services very fine. So no issues when I use eclipse.
>>>> Problem occur when I try to use Tomcat without eclipse. First issue I
>>>> get
>>>> is:
>>>> java.lang.RuntimeException:
>>>> org.springframework.beans.factory.BeanCreationException: Error creating
>>>> bean
>>>> with name 'org.apache.cxf.wsdl.WSDLManager' defined in URL
>>>> [bundleresource://22.fwk10630672:21/META-INF/cxf/cxf.fixml]:
>>>> Instantiation
>>>> of bean failed; nested exception is
>>>> org.springframework.beans.BeanInstantiationException: Could not
>>>> instantiate
>>>> bean class [org.apache.cxf.wsdl11.WSDLManagerImpl]: Constructor threw
>>>> exception; nested exception is java.lang.NoClassDefFoundError: Could
>>>> not
>>>> initialize class com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder
>>>>
>>>> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:96)
>>>>
>>>> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:86)
>>>>
>>>
>>> CXF JAXRS still indirectly depends on wsdl4j (definirtely will have to
>>> fixed for 2.3 and maybe for 2.2.7). Please drop it into the
>>> tomcat lib folder. Oh, you're using OSGI...So install this bundle :
>>>
>>> http://svn.apache.org/repos/asf/servicemix/smx4/bundles/tags/org.apache.servicemix.bundles.wsdl4j-1.6.2_2/
>>>
>>> thanks, Sergey
>>>
>>>>
>>>> When I try to google it, results directing me, Its classloader problem.
>>>> Now
>>>> my question is "How same set up is working from eclipse" and not from
>>>> Tomcat
>>>> directly. Any suggestion from running independently in tomcat without
>>>> eclipse.
>>>>
>>>> Ashish
>>>>
>>>> Sergey Beryozkin-2 wrote:
>>>>>
>>>>> Hi
>>>>>
>>>>>>
>>>>>> Hello guys,
>>>>>>
>>>>>> I am trying to generate stubs for my restful web service using SoapUi
>>>>>> 3.1.
>>>>>> When I try it with Jetty in eclipse, I got proper stubs generated.
>>>>>> But
>>>>>> same
>>>>>> when I try it with Tomcat, I am getting error.
>>>>>>
>>>>>> For deploying in Tomcat, I am using CXfNonSpringServlet. For running
>>>>>> into
>>>>>> tomcat, I have to remove 2 jars (xmlbeans-2.4.0.jar and
>>>>>> xalen-1.1.jar)
>>>>>> otherwise I am getting linker error. But for jetty no need for
>>>>>> removing
>>>>>> these jars. As I am removing these jar, wadl file generated with
>>>>>> "type"
>>>>>> tag.
>>>>>> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact"
>>>>>> type="contact"/> .
>>>>>
>>>>> I do not see how the presense or absense of xmlbeans or xalan jars
>>>>> could've affected the way a wadl grammar section has been
>>>>> generated...
>>>>>
>>>>>>
>>>>>> Due to this type attribute, SoapUI is not able to generate proper
>>>>>> java
>>>>>> client stubs. SoapUI is pointing to wadl-dist-1.0-SNAPSHOT.jar for
>>>>>> generating stubs.
>>>>>>
>>>>>> What my finding is difference between wadl generated by jetty and
>>>>>> tomcat
>>>>>> is
>>>>>> complex type attribute which is defined somewhere below in wadl file.
>>>>>> For
>>>>>> jetty there is no complex type attribute.
>>>>>>
>>>>>> Jetty ex:
>>>>>> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact">
>>>>>> after this line Contact object defination is present.
>>>>>
>>>>> So it is an anonymous complex type, something like
>>>>> <element name="Contact">
>>>>>   <complexType>
>>>>>    ...
>>>>>   </complexType>
>>>>> </element>
>>>>>
>>>>> ?
>>>>>> But for tomcat:
>>>>>> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact"
>>>>>> type="contact"/>
>>>>>>
>>>>>> and "contact" is defined below in wadl file. When I try to generate
>>>>>> with
>>>>>> this wadl file using SoapUI, I am getting error, complex type contact
>>>>>> is
>>>>>> not
>>>>>> resolved.
>>>>>
>>>>> Are sure it is not something like
>>>>> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact"
>>>>> type="tns:contact"/>
>>>>>
>>>>> where tns is bound to some namespace ?
>>>>>
>>>>> By the way, is it CXF (JAXRS) which generates WADL ? Can you attach
>>>>> the
>>>>> WADL instance which SoapUI can not handle ?
>>>>>
>>>>> cheers, Sergey
>>>>>>
>>>>>> What I feel is 2 jars (xmlbeans-2.4.0.jar and xalen-1.1.jar) are
>>>>>> required
>>>>>> to
>>>>>> generate proper wadl and client stub.
>>>>>>
>>>>>> Now my question is, "How can I deploy webservices in tomcat with
>>>>>> these
>>>>>> 2
>>>>>> jars in it"? One more point, I am running it as osgi bundle not using
>>>>>> DOSGi.
>>>>>>
>>>>>> -- 
>>>>>> View this message in context:
>>>>>> http://old.nabble.com/Deploying-web-services-in-tomcat.-tp27421210p27421210.html
>>>>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>> -- 
>>>> View this message in context:
>>>> http://old.nabble.com/Deploying-web-services-in-tomcat.-tp27421210p27437054.html
>>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>>
>>>
>>>
>>>
>>
>> -- 
>> View this message in context:
>> http://old.nabble.com/Deploying-web-services-in-tomcat.-tp27421210p27452214.html
>> Sent from the cxf-user mailing list archive at Nabble.com.
>> 
> 
> 
> 

-- 
View this message in context: http://old.nabble.com/Deploying-web-services-in-tomcat.-tp27421210p27497247.html
Sent from the cxf-user mailing list archive at Nabble.com.


Re: Deploying web services in tomcat.

Posted by Sergey Beryozkin <sb...@progress.com>.
Hi


>
> Hello Sergey,
>
> Thank you very much for your suggestion...
> It worked and my both the problem solved.
>
> In CXF2.2.6, by default WadlGenerator class has "useSingleSlashResource"
> property is true.
>
> WadlGenerator wd = new WadlGenerator();
>      wd.setUseSingleSlashResource(false);
>      factory.setProvider(wd);
>
> With this code snippet we set it to false and magically it worked.. :):)
>
> Any how we solve our second problem also... but conceptually having a lots
> of doubt.
>
> We trace down with eclipse jar set up and found what are the jars used by
> eclipse and found eclipse is using 5 jars to run in tomcat..
> org.eclipse.core.runtime,
> org.eclipse.equinox.app.jar,
> org.eclipse.core.jobs.jar,
> org.eclipse.core.contenttype.jar,
> org.eclipse.equinox.preferences.jar
>
> so placed these jars into tomcat with osgi bundles. These was another tweak.
> Tomcat was unable to use xmlapi-impl2.1.12.jar when we bundle it in our
> webservices bundle. Then we removed it from our bundle and placed in tomcats
> lib folder. Error gone and we were able to generate proper stubs.
>
> Now my doubts are:
> 1. If I dont use above mentioned jars.. I get wadl file but complex type
> attribute will be attached in wadl. <xs:element maxOccurs="unbounded"
> minOccurs="0" name="Contact"  type="contact"/>

WADLGenerator does not interact directly with the above jars...Can you please send me the wadls, the one which works and the one 
which does not (at least the wadl:grammar part) ?

>
> type is appearing without proper namespace therefore when I try to generate
> stubs, I got error.
>
> After tracing eclipse setup, I added them with our bundle and I got proper
> wadl..
>
> My question is, "How these jars are related with wadl generation"???
>
> Another tweak I mentioned in this post..
> jaxb-impl-2.1.12.jar when I keep it in my osgi bundle and add in class
> path.. cxf was not able to instantiate.. RuntimeModelBuilder class. Then I
> removed it from my bundle and placed in tomcats lib folder and it worked..
>
> My another question is.. "Why it didnt work with my bundle as it was in
> classpath"??

Not sure, sorry....

Sergey

>
> Again Thank you very much for your suggestion.. Now if you can clear my
> doubts.. it will be very helpful for me in future..
>
> Ashish
>
>
>
> Sergey Beryozkin-2 wrote:
>>
>> Hi
>>
>> thanks for getting to the bottom of it...
>>
>>>
>>> Hello Sergey,
>>>
>>> Thank you for your response.
>>>
>>> I worked on my envionment after posting question and now have 2
>>> problems...
>>>
>>> 1. I used CXF2.2.5 and 2.2.6 versions. The wadl which I generated through
>>> 2.2.5 can be generated proper stubs out of it. But with version 2.2.6
>>> whatever the wadl is generated, I am not able to generate stubs out of
>>> it.
>>> When I try to generate stubs from wadl (2.2.6), I get error "JClass name
>>> is
>>> empty".
>>>
>>> The difference between both the wadl file is 2.2.6 is adding <resourse
>>> path="/"> tag in method defination if @path tag is missing. but the
>>> 2.2.5is
>>> not adding any resourse  tag if @Path is missing.
>>>
>>> <resource path="/contact">
>>> <resource path="/">
>>> <method name="GET"></method>
>>> </resource>
>>> <resource path="/getstub">
>>> <method name="GET"></method>
>>> </resource>
>>> </resource>
>>>
>>
>> In 2.2.6 multiple methods sharing the same root are listed under a single
>> resource (though one can configure WADL generator to wrap
>> every method), so this is a sideeffect. I believe the above fragment is
>> perfectly correct, I asked a similar question on the wadl
>> list...Why can't SoapUI be a bit more 'tolerant' so to say (wondering,
>> should they be called WebServicesUI instead) ? I think I
>> tried to wrap even those methods which have no @Path (internally they have
>> a '/' path value) to avoid some possible ambiguities to
>> do with other resources having to 'inherit' higher level template
>> parameters, etc.
>>
>> Ex, consider you top-level GET method accepting a @PathParam("id")
>> value...which at the wadl level will be listed as a template
>> parameter visible to both this GET method and the "/getstub" resource.
>> Now, when a tool like SoapUI is about to let user to test
>> "/getstub", should it also offer it an option to enter the "id" value too
>> ? I hope you see my point here. A code gen tool would see
>> a similar issue.
>>
>> However in 2.2.6 you can register a WADLGenerator instance as a JAXRS
>> provider and set "useSingleSlashResource" property to false.
>> This will ensure you see no resources with path="/" (except for the case
>> when the very top level root resource has this value)
>> Perhaps this property should be set to false by default - I'll update it
>>
>>>
>>> 2. I can run my application from eclipse using 2.2.5 and generate proper
>>> stub and run web services very fine. So no issues when I use eclipse.
>>> Problem occur when I try to use Tomcat without eclipse. First issue I get
>>> is:
>>> java.lang.RuntimeException:
>>> org.springframework.beans.factory.BeanCreationException: Error creating
>>> bean
>>> with name 'org.apache.cxf.wsdl.WSDLManager' defined in URL
>>> [bundleresource://22.fwk10630672:21/META-INF/cxf/cxf.fixml]:
>>> Instantiation
>>> of bean failed; nested exception is
>>> org.springframework.beans.BeanInstantiationException: Could not
>>> instantiate
>>> bean class [org.apache.cxf.wsdl11.WSDLManagerImpl]: Constructor threw
>>> exception; nested exception is java.lang.NoClassDefFoundError: Could not
>>> initialize class com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder
>>>
>>> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:96)
>>>
>>> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:86)
>>>
>>
>> CXF JAXRS still indirectly depends on wsdl4j (definirtely will have to
>> fixed for 2.3 and maybe for 2.2.7). Please drop it into the
>> tomcat lib folder. Oh, you're using OSGI...So install this bundle :
>>
>> http://svn.apache.org/repos/asf/servicemix/smx4/bundles/tags/org.apache.servicemix.bundles.wsdl4j-1.6.2_2/
>>
>> thanks, Sergey
>>
>>>
>>> When I try to google it, results directing me, Its classloader problem.
>>> Now
>>> my question is "How same set up is working from eclipse" and not from
>>> Tomcat
>>> directly. Any suggestion from running independently in tomcat without
>>> eclipse.
>>>
>>> Ashish
>>>
>>> Sergey Beryozkin-2 wrote:
>>>>
>>>> Hi
>>>>
>>>>>
>>>>> Hello guys,
>>>>>
>>>>> I am trying to generate stubs for my restful web service using SoapUi
>>>>> 3.1.
>>>>> When I try it with Jetty in eclipse, I got proper stubs generated. But
>>>>> same
>>>>> when I try it with Tomcat, I am getting error.
>>>>>
>>>>> For deploying in Tomcat, I am using CXfNonSpringServlet. For running
>>>>> into
>>>>> tomcat, I have to remove 2 jars (xmlbeans-2.4.0.jar and xalen-1.1.jar)
>>>>> otherwise I am getting linker error. But for jetty no need for removing
>>>>> these jars. As I am removing these jar, wadl file generated with "type"
>>>>> tag.
>>>>> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact"
>>>>> type="contact"/> .
>>>>
>>>> I do not see how the presense or absense of xmlbeans or xalan jars
>>>> could've affected the way a wadl grammar section has been
>>>> generated...
>>>>
>>>>>
>>>>> Due to this type attribute, SoapUI is not able to generate proper java
>>>>> client stubs. SoapUI is pointing to wadl-dist-1.0-SNAPSHOT.jar for
>>>>> generating stubs.
>>>>>
>>>>> What my finding is difference between wadl generated by jetty and
>>>>> tomcat
>>>>> is
>>>>> complex type attribute which is defined somewhere below in wadl file.
>>>>> For
>>>>> jetty there is no complex type attribute.
>>>>>
>>>>> Jetty ex:
>>>>> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact">
>>>>> after this line Contact object defination is present.
>>>>
>>>> So it is an anonymous complex type, something like
>>>> <element name="Contact">
>>>>   <complexType>
>>>>    ...
>>>>   </complexType>
>>>> </element>
>>>>
>>>> ?
>>>>> But for tomcat:
>>>>> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact"
>>>>> type="contact"/>
>>>>>
>>>>> and "contact" is defined below in wadl file. When I try to generate
>>>>> with
>>>>> this wadl file using SoapUI, I am getting error, complex type contact
>>>>> is
>>>>> not
>>>>> resolved.
>>>>
>>>> Are sure it is not something like
>>>> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact"
>>>> type="tns:contact"/>
>>>>
>>>> where tns is bound to some namespace ?
>>>>
>>>> By the way, is it CXF (JAXRS) which generates WADL ? Can you attach the
>>>> WADL instance which SoapUI can not handle ?
>>>>
>>>> cheers, Sergey
>>>>>
>>>>> What I feel is 2 jars (xmlbeans-2.4.0.jar and xalen-1.1.jar) are
>>>>> required
>>>>> to
>>>>> generate proper wadl and client stub.
>>>>>
>>>>> Now my question is, "How can I deploy webservices in tomcat with these
>>>>> 2
>>>>> jars in it"? One more point, I am running it as osgi bundle not using
>>>>> DOSGi.
>>>>>
>>>>> -- 
>>>>> View this message in context:
>>>>> http://old.nabble.com/Deploying-web-services-in-tomcat.-tp27421210p27421210.html
>>>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>>>
>>>>
>>>>
>>>>
>>>
>>> -- 
>>> View this message in context:
>>> http://old.nabble.com/Deploying-web-services-in-tomcat.-tp27421210p27437054.html
>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>
>>
>>
>>
>
> -- 
> View this message in context: http://old.nabble.com/Deploying-web-services-in-tomcat.-tp27421210p27452214.html
> Sent from the cxf-user mailing list archive at Nabble.com.
> 


Re: Deploying web services in tomcat.

Posted by Ashishz <as...@gmail.com>.
Hello Sergey,

Thank you very much for your suggestion...
It worked and my both the problem solved.

In CXF2.2.6, by default WadlGenerator class has "useSingleSlashResource"
property is true. 

 WadlGenerator wd = new WadlGenerator();
	     wd.setUseSingleSlashResource(false);
	     factory.setProvider(wd);

With this code snippet we set it to false and magically it worked.. :):)

Any how we solve our second problem also... but conceptually having a lots
of doubt.

We trace down with eclipse jar set up and found what are the jars used by
eclipse and found eclipse is using 5 jars to run in tomcat..
org.eclipse.core.runtime,
org.eclipse.equinox.app.jar,
org.eclipse.core.jobs.jar,
org.eclipse.core.contenttype.jar,
org.eclipse.equinox.preferences.jar

so placed these jars into tomcat with osgi bundles. These was another tweak.
Tomcat was unable to use xmlapi-impl2.1.12.jar when we bundle it in our
webservices bundle. Then we removed it from our bundle and placed in tomcats
lib folder. Error gone and we were able to generate proper stubs.

Now my doubts are:
1. If I dont use above mentioned jars.. I get wadl file but complex type
attribute will be attached in wadl. <xs:element maxOccurs="unbounded"
minOccurs="0" name="Contact"  type="contact"/>

type is appearing without proper namespace therefore when I try to generate
stubs, I got error.

After tracing eclipse setup, I added them with our bundle and I got proper
wadl..

My question is, "How these jars are related with wadl generation"???

Another tweak I mentioned in this post..
jaxb-impl-2.1.12.jar when I keep it in my osgi bundle and add in class
path.. cxf was not able to instantiate.. RuntimeModelBuilder class. Then I
removed it from my bundle and placed in tomcats lib folder and it worked..

My another question is.. "Why it didnt work with my bundle as it was in
classpath"??

Again Thank you very much for your suggestion.. Now if you can clear my
doubts.. it will be very helpful for me in future..

Ashish



Sergey Beryozkin-2 wrote:
> 
> Hi
> 
> thanks for getting to the bottom of it...
> 
>>
>> Hello Sergey,
>>
>> Thank you for your response.
>>
>> I worked on my envionment after posting question and now have 2
>> problems...
>>
>> 1. I used CXF2.2.5 and 2.2.6 versions. The wadl which I generated through
>> 2.2.5 can be generated proper stubs out of it. But with version 2.2.6
>> whatever the wadl is generated, I am not able to generate stubs out of
>> it.
>> When I try to generate stubs from wadl (2.2.6), I get error "JClass name
>> is
>> empty".
>>
>> The difference between both the wadl file is 2.2.6 is adding <resourse
>> path="/"> tag in method defination if @path tag is missing. but the
>> 2.2.5is
>> not adding any resourse  tag if @Path is missing.
>>
>> <resource path="/contact">
>> <resource path="/">
>> <method name="GET"></method>
>> </resource>
>> <resource path="/getstub">
>> <method name="GET"></method>
>> </resource>
>> </resource>
>>
> 
> In 2.2.6 multiple methods sharing the same root are listed under a single
> resource (though one can configure WADL generator to wrap 
> every method), so this is a sideeffect. I believe the above fragment is
> perfectly correct, I asked a similar question on the wadl 
> list...Why can't SoapUI be a bit more 'tolerant' so to say (wondering,
> should they be called WebServicesUI instead) ? I think I 
> tried to wrap even those methods which have no @Path (internally they have
> a '/' path value) to avoid some possible ambiguities to 
> do with other resources having to 'inherit' higher level template
> parameters, etc.
> 
> Ex, consider you top-level GET method accepting a @PathParam("id")
> value...which at the wadl level will be listed as a template 
> parameter visible to both this GET method and the "/getstub" resource.
> Now, when a tool like SoapUI is about to let user to test 
> "/getstub", should it also offer it an option to enter the "id" value too
> ? I hope you see my point here. A code gen tool would see 
> a similar issue.
> 
> However in 2.2.6 you can register a WADLGenerator instance as a JAXRS
> provider and set "useSingleSlashResource" property to false.
> This will ensure you see no resources with path="/" (except for the case
> when the very top level root resource has this value)
> Perhaps this property should be set to false by default - I'll update it
> 
>>
>> 2. I can run my application from eclipse using 2.2.5 and generate proper
>> stub and run web services very fine. So no issues when I use eclipse.
>> Problem occur when I try to use Tomcat without eclipse. First issue I get
>> is:
>> java.lang.RuntimeException:
>> org.springframework.beans.factory.BeanCreationException: Error creating
>> bean
>> with name 'org.apache.cxf.wsdl.WSDLManager' defined in URL
>> [bundleresource://22.fwk10630672:21/META-INF/cxf/cxf.fixml]:
>> Instantiation
>> of bean failed; nested exception is
>> org.springframework.beans.BeanInstantiationException: Could not
>> instantiate
>> bean class [org.apache.cxf.wsdl11.WSDLManagerImpl]: Constructor threw
>> exception; nested exception is java.lang.NoClassDefFoundError: Could not
>> initialize class com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder
>>
>> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:96)
>>
>> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:86)
>>
> 
> CXF JAXRS still indirectly depends on wsdl4j (definirtely will have to
> fixed for 2.3 and maybe for 2.2.7). Please drop it into the 
> tomcat lib folder. Oh, you're using OSGI...So install this bundle :
> 
> http://svn.apache.org/repos/asf/servicemix/smx4/bundles/tags/org.apache.servicemix.bundles.wsdl4j-1.6.2_2/
> 
> thanks, Sergey
> 
>>
>> When I try to google it, results directing me, Its classloader problem.
>> Now
>> my question is "How same set up is working from eclipse" and not from
>> Tomcat
>> directly. Any suggestion from running independently in tomcat without
>> eclipse.
>>
>> Ashish
>>
>> Sergey Beryozkin-2 wrote:
>>>
>>> Hi
>>>
>>>>
>>>> Hello guys,
>>>>
>>>> I am trying to generate stubs for my restful web service using SoapUi
>>>> 3.1.
>>>> When I try it with Jetty in eclipse, I got proper stubs generated. But
>>>> same
>>>> when I try it with Tomcat, I am getting error.
>>>>
>>>> For deploying in Tomcat, I am using CXfNonSpringServlet. For running
>>>> into
>>>> tomcat, I have to remove 2 jars (xmlbeans-2.4.0.jar and xalen-1.1.jar)
>>>> otherwise I am getting linker error. But for jetty no need for removing
>>>> these jars. As I am removing these jar, wadl file generated with "type"
>>>> tag.
>>>> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact"
>>>> type="contact"/> .
>>>
>>> I do not see how the presense or absense of xmlbeans or xalan jars
>>> could've affected the way a wadl grammar section has been
>>> generated...
>>>
>>>>
>>>> Due to this type attribute, SoapUI is not able to generate proper java
>>>> client stubs. SoapUI is pointing to wadl-dist-1.0-SNAPSHOT.jar for
>>>> generating stubs.
>>>>
>>>> What my finding is difference between wadl generated by jetty and
>>>> tomcat
>>>> is
>>>> complex type attribute which is defined somewhere below in wadl file.
>>>> For
>>>> jetty there is no complex type attribute.
>>>>
>>>> Jetty ex:
>>>> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact">
>>>> after this line Contact object defination is present.
>>>
>>> So it is an anonymous complex type, something like
>>> <element name="Contact">
>>>   <complexType>
>>>    ...
>>>   </complexType>
>>> </element>
>>>
>>> ?
>>>> But for tomcat:
>>>> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact"
>>>> type="contact"/>
>>>>
>>>> and "contact" is defined below in wadl file. When I try to generate
>>>> with
>>>> this wadl file using SoapUI, I am getting error, complex type contact
>>>> is
>>>> not
>>>> resolved.
>>>
>>> Are sure it is not something like
>>> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact"
>>> type="tns:contact"/>
>>>
>>> where tns is bound to some namespace ?
>>>
>>> By the way, is it CXF (JAXRS) which generates WADL ? Can you attach the
>>> WADL instance which SoapUI can not handle ?
>>>
>>> cheers, Sergey
>>>>
>>>> What I feel is 2 jars (xmlbeans-2.4.0.jar and xalen-1.1.jar) are
>>>> required
>>>> to
>>>> generate proper wadl and client stub.
>>>>
>>>> Now my question is, "How can I deploy webservices in tomcat with these
>>>> 2
>>>> jars in it"? One more point, I am running it as osgi bundle not using
>>>> DOSGi.
>>>>
>>>> -- 
>>>> View this message in context:
>>>> http://old.nabble.com/Deploying-web-services-in-tomcat.-tp27421210p27421210.html
>>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>>
>>>
>>>
>>>
>>
>> -- 
>> View this message in context:
>> http://old.nabble.com/Deploying-web-services-in-tomcat.-tp27421210p27437054.html
>> Sent from the cxf-user mailing list archive at Nabble.com.
>> 
> 
> 
> 

-- 
View this message in context: http://old.nabble.com/Deploying-web-services-in-tomcat.-tp27421210p27452214.html
Sent from the cxf-user mailing list archive at Nabble.com.


Re: Deploying web services in tomcat.

Posted by Sergey Beryozkin <sb...@progress.com>.
Hi

thanks for getting to the bottom of it...

>
> Hello Sergey,
>
> Thank you for your response.
>
> I worked on my envionment after posting question and now have 2 problems...
>
> 1. I used CXF2.2.5 and 2.2.6 versions. The wadl which I generated through
> 2.2.5 can be generated proper stubs out of it. But with version 2.2.6
> whatever the wadl is generated, I am not able to generate stubs out of it.
> When I try to generate stubs from wadl (2.2.6), I get error "JClass name is
> empty".
>
> The difference between both the wadl file is 2.2.6 is adding <resourse
> path="/"> tag in method defination if @path tag is missing. but the 2.2.5is
> not adding any resourse  tag if @Path is missing.
>
> <resource path="/contact">
> <resource path="/">
> <method name="GET"></method>
> </resource>
> <resource path="/getstub">
> <method name="GET"></method>
> </resource>
> </resource>
>

In 2.2.6 multiple methods sharing the same root are listed under a single resource (though one can configure WADL generator to wrap 
every method), so this is a sideeffect. I believe the above fragment is perfectly correct, I asked a similar question on the wadl 
list...Why can't SoapUI be a bit more 'tolerant' so to say (wondering, should they be called WebServicesUI instead) ? I think I 
tried to wrap even those methods which have no @Path (internally they have a '/' path value) to avoid some possible ambiguities to 
do with other resources having to 'inherit' higher level template parameters, etc.

Ex, consider you top-level GET method accepting a @PathParam("id") value...which at the wadl level will be listed as a template 
parameter visible to both this GET method and the "/getstub" resource. Now, when a tool like SoapUI is about to let user to test 
"/getstub", should it also offer it an option to enter the "id" value too ? I hope you see my point here. A code gen tool would see 
a similar issue.

However in 2.2.6 you can register a WADLGenerator instance as a JAXRS provider and set "useSingleSlashResource" property to false.
This will ensure you see no resources with path="/" (except for the case when the very top level root resource has this value)
Perhaps this property should be set to false by default - I'll update it

>
> 2. I can run my application from eclipse using 2.2.5 and generate proper
> stub and run web services very fine. So no issues when I use eclipse.
> Problem occur when I try to use Tomcat without eclipse. First issue I get
> is:
> java.lang.RuntimeException:
> org.springframework.beans.factory.BeanCreationException: Error creating bean
> with name 'org.apache.cxf.wsdl.WSDLManager' defined in URL
> [bundleresource://22.fwk10630672:21/META-INF/cxf/cxf.fixml]: Instantiation
> of bean failed; nested exception is
> org.springframework.beans.BeanInstantiationException: Could not instantiate
> bean class [org.apache.cxf.wsdl11.WSDLManagerImpl]: Constructor threw
> exception; nested exception is java.lang.NoClassDefFoundError: Could not
> initialize class com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder
>
> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:96)
>
> org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:86)
>

CXF JAXRS still indirectly depends on wsdl4j (definirtely will have to fixed for 2.3 and maybe for 2.2.7). Please drop it into the 
tomcat lib folder. Oh, you're using OSGI...So install this bundle :

http://svn.apache.org/repos/asf/servicemix/smx4/bundles/tags/org.apache.servicemix.bundles.wsdl4j-1.6.2_2/

thanks, Sergey

>
> When I try to google it, results directing me, Its classloader problem. Now
> my question is "How same set up is working from eclipse" and not from Tomcat
> directly. Any suggestion from running independently in tomcat without
> eclipse.
>
> Ashish
>
> Sergey Beryozkin-2 wrote:
>>
>> Hi
>>
>>>
>>> Hello guys,
>>>
>>> I am trying to generate stubs for my restful web service using SoapUi
>>> 3.1.
>>> When I try it with Jetty in eclipse, I got proper stubs generated. But
>>> same
>>> when I try it with Tomcat, I am getting error.
>>>
>>> For deploying in Tomcat, I am using CXfNonSpringServlet. For running into
>>> tomcat, I have to remove 2 jars (xmlbeans-2.4.0.jar and xalen-1.1.jar)
>>> otherwise I am getting linker error. But for jetty no need for removing
>>> these jars. As I am removing these jar, wadl file generated with "type"
>>> tag.
>>> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact"
>>> type="contact"/> .
>>
>> I do not see how the presense or absense of xmlbeans or xalan jars
>> could've affected the way a wadl grammar section has been
>> generated...
>>
>>>
>>> Due to this type attribute, SoapUI is not able to generate proper java
>>> client stubs. SoapUI is pointing to wadl-dist-1.0-SNAPSHOT.jar for
>>> generating stubs.
>>>
>>> What my finding is difference between wadl generated by jetty and tomcat
>>> is
>>> complex type attribute which is defined somewhere below in wadl file. For
>>> jetty there is no complex type attribute.
>>>
>>> Jetty ex:
>>> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact">
>>> after this line Contact object defination is present.
>>
>> So it is an anonymous complex type, something like
>> <element name="Contact">
>>   <complexType>
>>    ...
>>   </complexType>
>> </element>
>>
>> ?
>>> But for tomcat:
>>> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact"
>>> type="contact"/>
>>>
>>> and "contact" is defined below in wadl file. When I try to generate with
>>> this wadl file using SoapUI, I am getting error, complex type contact is
>>> not
>>> resolved.
>>
>> Are sure it is not something like
>> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact"
>> type="tns:contact"/>
>>
>> where tns is bound to some namespace ?
>>
>> By the way, is it CXF (JAXRS) which generates WADL ? Can you attach the
>> WADL instance which SoapUI can not handle ?
>>
>> cheers, Sergey
>>>
>>> What I feel is 2 jars (xmlbeans-2.4.0.jar and xalen-1.1.jar) are required
>>> to
>>> generate proper wadl and client stub.
>>>
>>> Now my question is, "How can I deploy webservices in tomcat with these 2
>>> jars in it"? One more point, I am running it as osgi bundle not using
>>> DOSGi.
>>>
>>> -- 
>>> View this message in context:
>>> http://old.nabble.com/Deploying-web-services-in-tomcat.-tp27421210p27421210.html
>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>
>>
>>
>>
>
> -- 
> View this message in context: http://old.nabble.com/Deploying-web-services-in-tomcat.-tp27421210p27437054.html
> Sent from the cxf-user mailing list archive at Nabble.com.
> 


Re: Deploying web services in tomcat.

Posted by Ashishz <as...@gmail.com>.
Hello Sergey,

Thank you for your response.

I worked on my envionment after posting question and now have 2 problems...

1. I used CXF2.2.5 and 2.2.6 versions. The wadl which I generated through
2.2.5 can be generated proper stubs out of it. But with version 2.2.6
whatever the wadl is generated, I am not able to generate stubs out of it.
When I try to generate stubs from wadl (2.2.6), I get error "JClass name is
empty".

The difference between both the wadl file is 2.2.6 is adding <resourse
path="/"> tag in method defination if @path tag is missing. but the 2.2.5is
not adding any resourse  tag if @Path is missing. 

<resource path="/contact">
	<resource path="/">
		<method name="GET"></method>
	</resource>	
	<resource path="/getstub">
		<method name="GET"></method>
	</resource>
</resource>


2. I can run my application from eclipse using 2.2.5 and generate proper
stub and run web services very fine. So no issues when I use eclipse.
Problem occur when I try to use Tomcat without eclipse. First issue I get
is:
java.lang.RuntimeException:
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'org.apache.cxf.wsdl.WSDLManager' defined in URL
[bundleresource://22.fwk10630672:21/META-INF/cxf/cxf.fixml]: Instantiation
of bean failed; nested exception is
org.springframework.beans.BeanInstantiationException: Could not instantiate
bean class [org.apache.cxf.wsdl11.WSDLManagerImpl]: Constructor threw
exception; nested exception is java.lang.NoClassDefFoundError: Could not
initialize class com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder

org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:96)

org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:86)


When I try to google it, results directing me, Its classloader problem. Now
my question is "How same set up is working from eclipse" and not from Tomcat
directly. Any suggestion from running independently in tomcat without
eclipse.

Ashish

Sergey Beryozkin-2 wrote:
> 
> Hi
> 
>>
>> Hello guys,
>>
>> I am trying to generate stubs for my restful web service using SoapUi
>> 3.1.
>> When I try it with Jetty in eclipse, I got proper stubs generated. But
>> same
>> when I try it with Tomcat, I am getting error.
>>
>> For deploying in Tomcat, I am using CXfNonSpringServlet. For running into
>> tomcat, I have to remove 2 jars (xmlbeans-2.4.0.jar and xalen-1.1.jar)
>> otherwise I am getting linker error. But for jetty no need for removing
>> these jars. As I am removing these jar, wadl file generated with "type"
>> tag.
>> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact"
>> type="contact"/> .
> 
> I do not see how the presense or absense of xmlbeans or xalan jars
> could've affected the way a wadl grammar section has been 
> generated...
> 
>>
>> Due to this type attribute, SoapUI is not able to generate proper java
>> client stubs. SoapUI is pointing to wadl-dist-1.0-SNAPSHOT.jar for
>> generating stubs.
>>
>> What my finding is difference between wadl generated by jetty and tomcat
>> is
>> complex type attribute which is defined somewhere below in wadl file. For
>> jetty there is no complex type attribute.
>>
>> Jetty ex:
>> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact">
>> after this line Contact object defination is present.
> 
> So it is an anonymous complex type, something like
> <element name="Contact">
>   <complexType>
>    ...
>   </complexType>
> </element>
> 
> ?
>> But for tomcat:
>> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact"
>> type="contact"/>
>>
>> and "contact" is defined below in wadl file. When I try to generate with
>> this wadl file using SoapUI, I am getting error, complex type contact is
>> not
>> resolved.
> 
> Are sure it is not something like
> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact"
> type="tns:contact"/>
> 
> where tns is bound to some namespace ?
> 
> By the way, is it CXF (JAXRS) which generates WADL ? Can you attach the
> WADL instance which SoapUI can not handle ?
> 
> cheers, Sergey
>>
>> What I feel is 2 jars (xmlbeans-2.4.0.jar and xalen-1.1.jar) are required
>> to
>> generate proper wadl and client stub.
>>
>> Now my question is, "How can I deploy webservices in tomcat with these 2
>> jars in it"? One more point, I am running it as osgi bundle not using
>> DOSGi.
>>
>> -- 
>> View this message in context:
>> http://old.nabble.com/Deploying-web-services-in-tomcat.-tp27421210p27421210.html
>> Sent from the cxf-user mailing list archive at Nabble.com.
>> 
> 
> 
> 

-- 
View this message in context: http://old.nabble.com/Deploying-web-services-in-tomcat.-tp27421210p27437054.html
Sent from the cxf-user mailing list archive at Nabble.com.


Re: Deploying web services in tomcat.

Posted by Ashishz <as...@gmail.com>.
Hello Sergey,

Thank you for your response.

I worked on my envionment after posting question and now have 2 problems...

1. I used CXF2.2.5 and 2.2.6 versions. The wadl which I generated through
2.2.5 can be generated proper stubs out of it. But with version 2.2.6
whatever the wadl is generated, I am not able to generate stubs out of it.
When I try to generate stubs from wadl (2.2.6), I get error "JClass name is
empty".

The difference between both the wadl file is 2.2.6 is adding <resourse
path="/"> tag in method defination if @path tag is missing. but the 2.2.5is
not adding any resourse  tag if @Path is missing. 

<resource path="/contact">
	<resource path="/">
		<method name="GET"></method>
	</resource>	
	<resource path="/getstub">
		<method name="GET"></method>
	</resource>
</resource>


2. I can run my application from eclipse using 2.2.5 and generate proper
stub and run web services very fine. So no issues when I use eclipse.
Problem occur when I try to use Tomcat without eclipse. First issue I get
is:
java.lang.RuntimeException:
org.springframework.beans.factory.BeanCreationException: Error creating bean
with name 'org.apache.cxf.wsdl.WSDLManager' defined in URL
[bundleresource://22.fwk10630672:21/META-INF/cxf/cxf.fixml]: Instantiation
of bean failed; nested exception is
org.springframework.beans.BeanInstantiationException: Could not instantiate
bean class [org.apache.cxf.wsdl11.WSDLManagerImpl]: Constructor threw
exception; nested exception is java.lang.NoClassDefFoundError: Could not
initialize class com.sun.xml.bind.v2.model.impl.RuntimeModelBuilder

org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:96)

org.apache.cxf.bus.spring.SpringBusFactory.createBus(SpringBusFactory.java:86)


When I try to google it, results directing me, Its classloader problem. Now
my question is "How same set up is working from eclipse" and not from Tomcat
directly. Any suggestion from running independently in tomcat without
eclipse.

Ashish

Sergey Beryozkin-2 wrote:
> 
> Hi
> 
>>
>> Hello guys,
>>
>> I am trying to generate stubs for my restful web service using SoapUi
>> 3.1.
>> When I try it with Jetty in eclipse, I got proper stubs generated. But
>> same
>> when I try it with Tomcat, I am getting error.
>>
>> For deploying in Tomcat, I am using CXfNonSpringServlet. For running into
>> tomcat, I have to remove 2 jars (xmlbeans-2.4.0.jar and xalen-1.1.jar)
>> otherwise I am getting linker error. But for jetty no need for removing
>> these jars. As I am removing these jar, wadl file generated with "type"
>> tag.
>> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact"
>> type="contact"/> .
> 
> I do not see how the presense or absense of xmlbeans or xalan jars
> could've affected the way a wadl grammar section has been 
> generated...
> 
>>
>> Due to this type attribute, SoapUI is not able to generate proper java
>> client stubs. SoapUI is pointing to wadl-dist-1.0-SNAPSHOT.jar for
>> generating stubs.
>>
>> What my finding is difference between wadl generated by jetty and tomcat
>> is
>> complex type attribute which is defined somewhere below in wadl file. For
>> jetty there is no complex type attribute.
>>
>> Jetty ex:
>> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact">
>> after this line Contact object defination is present.
> 
> So it is an anonymous complex type, something like
> <element name="Contact">
>   <complexType>
>    ...
>   </complexType>
> </element>
> 
> ?
>> But for tomcat:
>> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact"
>> type="contact"/>
>>
>> and "contact" is defined below in wadl file. When I try to generate with
>> this wadl file using SoapUI, I am getting error, complex type contact is
>> not
>> resolved.
> 
> Are sure it is not something like
> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact"
> type="tns:contact"/>
> 
> where tns is bound to some namespace ?
> 
> By the way, is it CXF (JAXRS) which generates WADL ? Can you attach the
> WADL instance which SoapUI can not handle ?
> 
> cheers, Sergey
>>
>> What I feel is 2 jars (xmlbeans-2.4.0.jar and xalen-1.1.jar) are required
>> to
>> generate proper wadl and client stub.
>>
>> Now my question is, "How can I deploy webservices in tomcat with these 2
>> jars in it"? One more point, I am running it as osgi bundle not using
>> DOSGi.
>>
>> -- 
>> View this message in context:
>> http://old.nabble.com/Deploying-web-services-in-tomcat.-tp27421210p27421210.html
>> Sent from the cxf-user mailing list archive at Nabble.com.
>> 
> 
> 
> 

-- 
View this message in context: http://old.nabble.com/Deploying-web-services-in-tomcat.-tp27421210p27437034.html
Sent from the cxf-user mailing list archive at Nabble.com.


Re: Deploying web services in tomcat.

Posted by Sergey Beryozkin <sb...@progress.com>.
Hi

>
> Hello guys,
>
> I am trying to generate stubs for my restful web service using SoapUi 3.1.
> When I try it with Jetty in eclipse, I got proper stubs generated. But same
> when I try it with Tomcat, I am getting error.
>
> For deploying in Tomcat, I am using CXfNonSpringServlet. For running into
> tomcat, I have to remove 2 jars (xmlbeans-2.4.0.jar and xalen-1.1.jar)
> otherwise I am getting linker error. But for jetty no need for removing
> these jars. As I am removing these jar, wadl file generated with "type" tag.
> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact"
> type="contact"/> .

I do not see how the presense or absense of xmlbeans or xalan jars could've affected the way a wadl grammar section has been 
generated...

>
> Due to this type attribute, SoapUI is not able to generate proper java
> client stubs. SoapUI is pointing to wadl-dist-1.0-SNAPSHOT.jar for
> generating stubs.
>
> What my finding is difference between wadl generated by jetty and tomcat is
> complex type attribute which is defined somewhere below in wadl file. For
> jetty there is no complex type attribute.
>
> Jetty ex:
> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact">
> after this line Contact object defination is present.

So it is an anonymous complex type, something like
<element name="Contact">
  <complexType>
   ...
  </complexType>
</element>

?
> But for tomcat:
> <xs:element maxOccurs="unbounded" minOccurs="0" name="Contact"
> type="contact"/>
>
> and "contact" is defined below in wadl file. When I try to generate with
> this wadl file using SoapUI, I am getting error, complex type contact is not
> resolved.

Are sure it is not something like
<xs:element maxOccurs="unbounded" minOccurs="0" name="Contact"
type="tns:contact"/>

where tns is bound to some namespace ?

By the way, is it CXF (JAXRS) which generates WADL ? Can you attach the WADL instance which SoapUI can not handle ?

cheers, Sergey
>
> What I feel is 2 jars (xmlbeans-2.4.0.jar and xalen-1.1.jar) are required to
> generate proper wadl and client stub.
>
> Now my question is, "How can I deploy webservices in tomcat with these 2
> jars in it"? One more point, I am running it as osgi bundle not using DOSGi.
>
> -- 
> View this message in context: http://old.nabble.com/Deploying-web-services-in-tomcat.-tp27421210p27421210.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>