Hi,

thanks for all your support, removing tuscany-host-jetty jar from the
classpath solved the problem! I can now run the service from Tomcat.

I would just like to clarify with you few more things that were
mentioned in this thread. Ant mentioned, that he would start working
on something for next release of Tuscany, which is due to be released
in August. Did you mean also the "on the fly" generation of WSDL, to
support services without pre existing WSDL file?

How can I generate WSDL file for SCA service using Tuscany at the
moment? And does the generation support SDOs as parameters / results
of services?

Thanks,
Radim


On 7/26/07, Simon Laws <[EMAIL PROTECTED]> wrote:
On 7/26/07, ant elder <[EMAIL PROTECTED]> wrote:
>
> That sounds a lot like the dependencies aren't quite correct. We've
> actually
> just started talking about this on the dev list to come up with a way to
> make this much easier for app developers. Anyway, if you take a look at
> the
> helloworld sample i just committed [1] that shows about the simplest i
> could
> come up with that shows how to do what you want. You can call that webapp
> service by using the tuscany helloworld-ws-reference sample by changing
> the
> wsdl port location to be:
>
> 
http://localhost:8080/sample-helloworld-ws-service-webapp/SCA/HelloWorldComponent/HelloWorldService
>
> I'll go try to get the calculator-webapp-ws sample working as well so
> there's two examples.
>
>    ...ant
>
> [1]
>
> 
https://svn.apache.org/repos/asf/incubator/tuscany/java/sca/samples/helloworld-ws-service-webapp
>
>
> On 7/26/07, Radim Kolarik <[EMAIL PROTECTED]> wrote:
> >
> > Hi,
> >
> > I made some progress with this, but it doesn't do exactly what I need it
> > to do.
> >
> > In my META-INF folder, I have sca-contribution.xml file, which looks
> like
> > this:
> > <contribution xmlns="http://www.osoa.org/xmlns/sca/1.0";
> >               targetNamespace="http://helloworld";
> >               xmlns:sample="http://helloworld";>
> >    <deployable composite="sample:helloworldws"/>
> > </contribution>
> >
> > This is my .composite file:
> > <composite xmlns="http://www.osoa.org/xmlns/sca/1.0";
> >         targetNamespace="http://helloworld";
> >         xmlns:hw="http://helloworld";
> >     name="helloworldws">
> >
> >     <component name="HelloWorldServiceComponent">
> >             <service name="HelloWorldService">
> >                 <interface.java interface="helloworld.HelloWorldService
> "/>
> >           <binding.ws
> > wsdlElement="
> > http://helloworld#wsdl.port(HelloWorldService/HelloWorldSoapPort)"/>
> >             </service>
> >       <implementation.java class="helloworld.HelloWorldImpl" />
> >     </component>
> >
> > </composite>
> >
> > The important section in the WSDL file is:
> >     <wsdl:service name="HelloWorldService">
> >         <wsdl:port binding="tns:HelloWorldSoapBinding"
> > name="HelloWorldSoapPort">
> >             <wsdlsoap:address
> > location="
> >
> 
http://localhost:8090/helloworldServiceWAR/HelloWorldServiceComponent/HelloWorldService
> > "/>
> >         </wsdl:port>
> >     </wsdl:service>
> >
> > Now my Tomcat is running on port 8080. As you can see, I had to
> > specify port 8090 in WSDL, which made my service WSDL accessible via:
> >
> >
> 
http://localhost:8090/helloworldServiceWAR/HelloWorldServiceComponent/HelloWorldService?wsdl
> >
> > When I had the port in WSDL file set to 8080, I got an exception:
> > java.net.BindException: Address already in use: bind
> >
> > That would suggest that some "standalone" engine is being inicialized
> > which binds the service to port specified in WSDL. But what if I
> > wanted the service to be handled directly by Tomcat? Would it be
> > possible?
> >
> > By the way, my webapp uses the same JAR files in its WEB-INF/lib
> > directory as were created using maven build of calculator-webapp-ws
> > sample (I understand that I shouldn't have
> > tuscany-sca-all-0.90-incubating.jar in web application class path).
> >
> > Thanks,
> > Radim
> >
> > On 7/26/07, Simon Laws <[EMAIL PROTECTED]> wrote:
> > > On 7/26/07, ant elder <[EMAIL PROTECTED]> wrote:
> > > >
> > > > That composite you have unfortunately wont work with Tuscany as we
> > don't
> > > > yet
> > > > support web services without pre-existing wsdl. So you need to
> change
> > > > either
> > > > the <binding.ws> to reference a wsdl or change the <service> to use
> <
> > > > interface.wsdl>. Thats on the current plan to fix in the next
> release
> > > > which
> > > > is targeted for August. This has come up a few times recently so
> i'll
> > go
> > > > start work on that now.
> > > >
> > > > I have a helloworld-ws-service webapp sample that I've just noticed
> > I've
> > > > never committed, i'll commit that now so there's at least something
> > that
> > > > can
> > > > be used as a base to start from.
> > > >
> > > > Additionally on the url below, it shouldn't have a slash before
> ?wsdl
> > so
> > > > should be:
> > > >
> > > >
> >
> 
http://localhost:8080/helloworldServiceWAR/HelloWorldServiceComponent/HelloWorldService?wsdl
> > > >
> > > >    ...ant
> > > >
> > > > On 7/26/07, Radim Kolarik <[EMAIL PROTECTED]> wrote:
> > > > >
> > > > > Hi Ant,
> > > > >
> > > > > I tried it as you suggested, so I deployed the service with
> > > > > <binding.ws/> only, and tried to access the application using the
> :
> > > > >
> > > > > [webappSerletUrl]/componentName/serviceName
> > > > >
> > > > > but without success. I am still getting the
> > > > > No servlet registered for path:
> > > > > /HelloWorldServiceComponent/HelloWorldService/ exception.
> > > > >
> > > > > Here is the helloworldws.composite file that I use:
> > > > >
> > > > > <composite xmlns="http://www.osoa.org/xmlns/sca/1.0";
> > > > >         targetNamespace="http://helloworld";
> > > > >         xmlns:hw="http://helloworld";
> > > > >     name="helloworldws">
> > > > >
> > > > >     <component name="HelloWorldServiceComponent">
> > > > >             <service name="HelloWorldService">
> > > > >                 <interface.java interface="
> > helloworld.HelloWorldService"
> > > > > />
> > > > >                 <binding.ws/>
> > > > >             </service>
> > > > >         <implementation.java class="helloworld.HelloWorldImpl" />
> > > > >     </component>
> > > > >
> > > > > </composite>
> > > > >
> > > > > and the URL that doesn't work is
> > > > >
> > > > >
> > > >
> >
> 
http://localhost:8080/helloworldServiceWAR/HelloWorldServiceComponent/HelloWorldService/?wsdl
> > > > >
> > > > > Thanks,
> > > > > Radim
> > > > >
> > > > > On 7/26/07, ant elder <[EMAIL PROTECTED]> wrote:
> > > > > > On 7/26/07, Simon Laws <[EMAIL PROTECTED]> wrote:
> > > > > > >
> > > > > > > On 7/26/07, Radim Kolarik <[EMAIL PROTECTED] > wrote:
> > > > > > > >
> > > > > > > > Hi Reymond,
> > > > > > > >
> > > > > > > > Thank you for your reply.
> > > > > > > >
> > > > > > > > How do I run the example if it is deployed to a web server,
> > such
> > > > as
> > > > > > > > Tomcat? I found an information about TuscanyServlet, which
> > needs
> > > > to
> > > > > be
> > > > > > > > in web.xml file, which I have now.
> > > > > > > >
> > > > > > > > Let's say that my server's root context and web app context
> > URL is
> > > > > > > > http://localhost:8080/myWebApp . What do I have to add after
> > this
> > > > > URL
> > > > > > > > to be able to access the application? According to SCA spec,
> > the
> > > > web
> > > > > > > > service WSDL should be available if the URL ends with ?wsdl.
> > But
> > > > if
> > > > > I
> > > > > > > > type http://localhost:8080/myWebApp/?wsdl in the browser, I
> > get an
> > > > > > > > exception:
> > > > > > > >
> > > > > > > > SEVERE: Servlet.service() for servlet TuscanyServlet threw
> > > > exception
> > > > > > > > java.lang.IllegalStateException: No servlet registered for
> > path: /
> > > > > > > >         at
> > org.apache.tuscany.sca.webapp.TuscanyServlet.service(
> > > > > > > > TuscanyServlet.java:57)
> > > > > > > >         at
> > > > > > > >
> > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(
> > > > > > > > ApplicationFilterChain.java:290)
> > > > > > > >         at
> > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(
> > > > > > > > ApplicationFilterChain.java:206)
> > > > > > > >         at
> > org.apache.catalina.core.StandardWrapperValve.invoke(
> > > > > > > > StandardWrapperValve.java:230)
> > > > > > > >         at
> > org.apache.catalina.core.StandardContextValve.invoke(
> > > > > > > > StandardContextValve.java:175)
> > > > > > > >         at org.apache.catalina.core.StandardHostValve.invoke(
> > > > > > > > StandardHostValve.java:128)
> > > > > > > >         at
> org.apache.catalina.valves.ErrorReportValve.invoke(
> > > > > > > > ErrorReportValve.java:104)
> > > > > > > >         at
> org.apache.catalina.core.StandardEngineValve.invoke
> > (
> > > > > > > > StandardEngineValve.java:109)
> > > > > > > >         at
> org.apache.catalina.connector.CoyoteAdapter.service
> > (
> > > > > > > > CoyoteAdapter.java:261)
> > > > > > > >         at org.apache.coyote.http11.Http11Processor.process(
> > > > > > > > Http11Processor.java:844)
> > > > > > > >         at
> > > > > > > >
> > > > >
> > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(
> > > > > > > > Http11Protocol.java:581)
> > > > > > > >         at org.apache.tomcat.util.net.JIoEndpoint$Worker.run
> (
> > > > > > > > JIoEndpoint.java:447)
> > > > > > > >         at java.lang.Thread.run(Thread.java:595)
> > > > > > > >
> > > > > > > > I did some debugging on this and it seems that the servlet
> > tries
> > > > to
> > > > > > > > obtain a mapping from a Map, which is empty. Is this a bug
> or
> > am I
> > > > > > > > just missing something in my .composite file or WSDL?
> > > > > > > >
> > > > > > > > Also, did you create the WSDL file manually or did you use
> any
> > > > > > > > generation tool provided by Tuscany?
> > > > > > > >
> > > > > > > > Thanks,
> > > > > > > > Radim
> > > > > > > >
> > > > > > > > On 7/25/07, Raymond Feng <[EMAIL PROTECTED]> wrote:
> > > > > > > > > Hi, Radim.
> > > > > > > > >
> > > > > > > > > I'm not very sure if we already have the support to deploy
> > an
> > > > SCA
> > > > > > > > service as
> > > > > > > > > a web service without WSDL. If not, that's something we
> want
> > to
> > > > > > > support
> > > > > > > > for
> > > > > > > > > sure.
> > > > > > > > >
> > > > > > > > > We have a sample to demonstrate the usage of SCA, web
> > service
> > > > and
> > > > > SDO.
> > > > > > > > It
> > > > > > > > > seems to be what you are looking for. You can see the
> sample
> > > > code
> > > > > at:
> > > > > > > > >
> > > > > > > > >
> > > > > > >
> > > > >
> > > >
> >
> 
https://svn.apache.org/repos/asf/incubator/tuscany/java/sca/samples/helloworld-ws-sdo
> > > > > > > >
> > > > > > > > >
> > > > > > > > > Thanks,
> > > > > > > > > Raymond
> > > > > > > > >
> > > > > > > > > ----- Original Message -----
> > > > > > > > > From: "Radim Kolarik" < [EMAIL PROTECTED]>
> > > > > > > > > To: < tuscany-user@ws.apache.org>
> > > > > > > > > Sent: Wednesday, July 25, 2007 7:38 AM
> > > > > > > > > Subject: Services and WSDL files
> > > > > > > > >
> > > > > > > > >
> > > > > > > > > > Hi,
> > > > > > > > > >
> > > > > > > > > > Is it necessary to supply wsdl file if I want to deploy
> an
> > SCA
> > > > > > > service
> > > > > > > > as
> > > > > > > > > > a
> > > > > > > > > > web service? Or can Tuscany generate the file "on the
> > fly"?
> > > > > > > > > >
> > > > > > > > > > If I need to supply the file myself, what would be the
> > best
> > > > way
> > > > > to
> > > > > > > > > > generate
> > > > > > > > > > the file? Is it possible to generate the file for SDOs,
> if
> > > > they
> > > > > are
> > > > > > > > > > service
> > > > > > > > > > parameters or if a service returns an SDO object as its
> > > > result?
> > > > > > > > > >
> > > > > > > > > > Thanks,
> > > > > > > > > > Radim
> > > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > > > > > >
> > > > >
> > ---------------------------------------------------------------------
> > > > > > > > > To unsubscribe, e-mail:
> > [EMAIL PROTECTED]
> > > > > > > > > For additional commands, e-mail:
> > [EMAIL PROTECTED]
> > > > > > > > >
> > > > > > > > >
> > > > > > > >
> > > > > > > >
> > > > >
> > ---------------------------------------------------------------------
> > > > > > > > To unsubscribe, e-mail:
> [EMAIL PROTECTED]
> > > > > > > > For additional commands, e-mail:
> > [EMAIL PROTECTED]
> > > > > > > >
> > > > > > > > Hi Radim
> > > > > > >
> > > > > > > Someone else is asking a similar question [1]. As part of this
> I
> > > > made
> > > > > a
> > > > > > > sample [2] to experiment with exposing web services through
> the
> > web
> > > > > app
> > > > > > > container. There are a few wrinkles in getting this to work.
> To
> > make
> > > > > it
> > > > > > > work
> > > > > > > I hand created WSDL conatining a service URL that matched
> where
> > I
> > > > knew
> > > > > the
> > > > > > > service was going to be deployed. For example.
> > > > > > >
> > > > > > > In the sample [2] the URL that is registered with the web app
> > > > relates
> > > > > to
> > > > > > > the
> > > > > > > single service that is described in the  .composite file [3]
> > > > > > >
> > > > > > >     <component name="AddServiceComponent">
> > > > > > >         <implementation.java class="calculator.AddServiceImpl
> "/>
> > > > > > >         <service name="AddService">
> > > > > > >             <interface.java interface="calculator.AddService"
> />
> > > > > > >             <binding.ws
> > > > > > > wsdlElement="
> http://calculator#wsdl.port(AddService/AddSoapPort)
> > > > > > > <http://calculator/#wsdl.port%28AddService/AddSoapPort%29>"/>
> > > > > > >         </service>
> > > > > > >     </component>
> > > > > > >
> > > > > > > And, in this case, takes its value from the WSDL service
> > description
> > > > > [3]
> > > > > > >
> > > > > > >     <wsdl:service name="AddService">
> > > > > > >
> > > > > > >         <wsdl:port binding="tns:AddSoapBinding"
> > name="AddSoapPort">
> > > > > > >
> > > > > > >             <wsdlsoap:address
> > > > > > > location="
> > > > > > >
> > > >
> http://localhost:8080/sample-calculator-webapp-ws/services/AddService
> > > > > "/>
> > > > > > >         </wsdl:port>
> > > > > > >     </wsdl:service>
> > > > > > >
> > > > > > > I.e, I see the value.
> > > > > > >
> > > > > > >
> > > > >
> > > >
> >
> 
http://localhost:8080/sample-calculator-webapp-ws/services/AddServiceregistered
> > > > > > > in the WebAppServletHost
> > > > > > >
> > > > > > > The important thing here is that the URL I hand edited into
> the
> > WSDL
> > > > > file
> > > > > > > matches the URL that the web app is deployed at. In my case
> I'm
> > > > > deploying
> > > > > > > the WAR to tomcat and it ends up at
> > > > > > > http://localhost:8080/sample-calculator-webapp-ws
> > > > > > > . The web.xml file maps "/services" to the TuscanyServlet so
> > that
> > > > > appears
> > > > > > > too and finally the name of the service.
> > > > > > >
> > > > > > > Now this all feels a little complicated to me, I.e Reading the
> > spec
> > > > I
> > > > > > > would
> > > > > > > expect just to be able to specify a service name and have the
> > > > runtime
> > > > > > > construct the URL automatically for me. In fact this is how I
> > think
> > > > > the
> > > > > > > TuscanyServlet is coded, in that it only looks for registered
> > > > servlets
> > > > > > > based
> > > > > > > on path info, and what I think the assembly spec says.  The
> > problem
> > > > is
> > > > > it
> > > > > > > doesn't appear to be easy to configure the .composite file
> with
> > just
> > > > > path
> > > > > > > info and also keep axis happy.  I've tried a few things, e.g.
> > > > > > >
> > > > > > > <binding.ws>
> > > > > > > < binding.ws uri="...">
> > > > > > >
> > > > > > > But Axis complains. So maybe someone (Raymond?) can tell us
> what
> > the
> > > > > magic
> > > > > > > rune is to make this work but for the time being the code in
> > trunk
> > > > > works
> > > > > > > for
> > > > > > > the sample.  I have opened JIRA TUSCANY-1481 on this so we
> have
> > a
> > > > > marker
> > > > > > > but
> > > > > > > it sounds like you are making some progress debugging
> > so  feel  free
> > > > > to
> > > > > > > attach notes if you feel it's appropriate.
> > > > > > >
> > > > > > > Regards
> > > > > > >
> > > > > > > Simon
> > > > > > >
> > > > > > >
> > > > > > > [1]
> > > > >
> > http://www.mail-archive.com/tuscany-user%40ws.apache.org/msg01434.html
> > > > > > >   Note. There are a couple of mails missing off this thread
> that
> > I
> > > > > didn't
> > > > > > > send to the user list by accident. Just forwarded them now so
> > > > > hopefully
> > > > > > > the
> > > > > > > archive will catch up sortly
> > > > > > >
> > > > > > >
> > > > >
> > > >
> >
> 
[2]http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/samples/calculator-webapp-ws/
> > > > > > >
> > > > > > >
> > > > >
> > > >
> >
> 
[3]http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/samples/calculator-webapp-ws/src/main/resources/Calculator.composite
> > > > > > >
> > > > > > >
> > > > >
> > > >
> >
> 
[4]http://svn.apache.org/repos/asf/incubator/tuscany/java/sca/samples/calculator-webapp-ws/src/main/resources/wsdl/add.wsdl
> > > > > > >
> > > > > >
> > > > > > See:
> > > > > >
> > > > >
> > > >
> >
> http://mail-archives.apache.org/mod_mbox/ws-tuscany-dev/200707.mbox/browser
> > > > > > and: http://incubator.apache.org/tuscany/sca-java-bindingws.html
> > > > > >
> > > > > > Basically, if you reference the WSDL port it will use that,
> > otherwise
> > > > > the
> > > > > > url is constructed from the component name, service name and
> > binding
> > > > > URI. I
> > > > > > find for services its easiest to just leave it all out eg ,<
> > > > binding.ws/>,
> > > > > in
> > > > > > which case the uri will be the
> > > > > [webappSerletUrl]/componentName/serviceName,
> > > > > > and for references to explicitly use the uri attribute, eg <
> > > > binding.wsuri="
> > > > > > http://somehost/someService"; />
> > > > > >
> > > > > >   ...ant
> > > > > >
> > > > >
> > > >
> > > There is a calculator-webapp-ws sample also
> > >
> > > Simon
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>

It's caused by leaving the tuscany-host-jetty jar in the classpath of the
web app. I.e. when I started my web app inside of Tomcat jetty was also
being started. You need to remove the tuscany-host-jetty jar from the
WEB-INF/lib dir.. It's there so the sample can be tested as part of the
maven build but we need a better way of doing this as it implies the manual
step.

Simon


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to