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.ws uri=" http://somehost/someService" /> ...ant
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]