using jetty 6.0.2 On Thursday 25 October 2007, Benson Margulies wrote: > What version of jetty? > > > -----Original Message----- > > From: Miguel De Anda [mailto:[EMAIL PROTECTED] > > Sent: Wednesday, October 24, 2007 10:29 PM > > To: [email protected] > > Subject: undocumented configuration with jetty > > > > i've got an application (my server) that launches its own jetty server > > for > > > sending files to external nodes. they currently talk to each other > > using > > > simple xml passed in as a post request and in the response. the > > external > > > nodes don't run a web server of any kind. > > > > i now need to add a soap interface on my server but can't figure out > > how. > > > this > > is how my jetty server is started: > > > > ServletHolder servlet; > > org.mortbay.jetty.Server jettyServer = > > new org.mortbay.jetty.Server(PORT); > > Context root = new Context(jettyServer, "/", Context.SESSIONS); > > .... > > servlet = new ServletHolder(someServlet); > > root.addServlet(servlet, "/*"); > > .... > > CXFServlet cxf = new CXFServlet(); > > servlet = new ServletHolder(cxf); > > servlet.setName("soap"); > > servlet.setForcedPath("soap"); > > root.addServlet(servlet, "/soap/*"); > > HelloWorld hw = new HelloWorldImpl(); > > Endpoint.publish("/soap/HelloWorld", hw); > > jettyServer.start(); > > > > ---------------------------- > > package a.b.c; > > import javax.jws.WebService; > > @WebService > > public interface HelloWorld { > > String sayHi(String text); > > } > > ---------------------------- > > import javax.jws.WebService; > > @WebService(endpointInterface = "a.b.c.HelloWorld") > > public class HelloWorldImpl implements HelloWorld { > > public String sayHi(String text) { > > return "The interesting question becomes is what is > > soap?"; > > > } > > } > > ---------------------------- > > > > i got errors ranging from a null pointer exception when i went to > > http://localhost:PORT/soap/ to "/soap/HelloWorld" not being a valid > > url > > > (in > > the line Endpoint.publish). i had to set a full url there, when i > > used "http://localhost:PORT/soap/HelloWorld" it told me that the port > > was > > > being used, so i figured its launching its own internal instance of > > jetty > > > (or > > whatever it uses). i then replaced the port to some 8087 and it almost > > works, > > but i get a "<faultstring>No such operation: </faultstring>" message > > when > > > viewing http://localhost:8087/soap/HelloWorld > > > > i would really like to be able to use the same jetty server, and be > > able > > > to > > give access to my existing objects in my application. i'm using spring > > to > > > load up an object that has all of my configuration settings but not in > > the > > > same way you would in a typical web app that runs on a webserver. the > > customer currently has access to that spring config file and it would > > be > > > wrong to give them access (or force them to configure) the soap > > services. > > > in other words, my app is launched this way: > > public static void main(...) { > > Resource resource = new FileSystemResource(config); > > BeanFactory factory = new XmlBeanFactory(resource); > > Config config = (Config)factory.getBean(bean); > > configApp(config); > > startServices(); > > } > > > > > > Actual error messages: > > (using /soap/... in publish line) > > Caused by: java.net.MalformedURLException: no protocol: > > /soap/HelloWorld > > > at java.net.URL.<init>(URL.java:567) > > at java.net.URL.<init>(URL.java:464) > > at java.net.URL.<init>(URL.java:413) > > at > > org.apache.cxf.transport.http_jetty.JettyHTTPDestination.<init>(JettyHTT > PD > > > estination.java:87) > > at > > org.apache.cxf.transport.http_jetty.JettyHTTPTransportFactory.createDest > in > > > ation(JettyHTTPTransportFactory.java:96) > > at > > org.apache.cxf.transport.http_jetty.JettyHTTPTransportFactory.getDestina > ti > > > on(JettyHTTPTransportFactory.java:83) > > at > > org.apache.cxf.binding.soap.SoapTransportFactory.getDestination(SoapTran > sp > > > ortFactory.java:74) > > at > > org.apache.cxf.endpoint.ServerImpl.initDestination(ServerImpl.java:90) > > at > > org.apache.cxf.endpoint.ServerImpl.<init>(ServerImpl.java:69) > > > at > > org.apache.cxf.frontend.ServerFactoryBean.create(ServerFactoryBean.java: > 10 > > > 8) > > ... 8 more > > > > (using http://...:PORT/ in publish line) > > Exception in thread "main" java.net.BindException: Address already in > > use > > > at java.net.PlainSocketImpl.socketBind(Native Method) > > at java.net.PlainSocketImpl.bind(PlainSocketImpl.java:359) > > > > ********************************************************************** > > > > This email, its content and any attachments is PRIVATE AND > > CONFIDENTIAL to TANDBERG Television, Part of the Ericsson Group. > > If received in error please notify the sender and destroy the original > > message and attachments. > > > > www.tandbergtv.com > > **********************************************************************
-- Miguel De Anda Software Engineer TANDBERG Television | Part of the Ericsson Group 100 N. Sepulveda Blvd. Suite 1600 | El Segundo | CA 90245 Tel: 310.591.3041 | Fax: 310.591.3099 Email: [EMAIL PROTECTED] | www.tandbergtv.com ********************************************************************** This email, its content and any attachments is PRIVATE AND CONFIDENTIAL to TANDBERG Television, Part of the Ericsson Group. If received in error please notify the sender and destroy the original message and attachments. www.tandbergtv.com **********************************************************************
