All,

I am getting:

Exception in thread "main" java.lang.IllegalArgumentException: Cannot
create URL for this address /Greeter
        at
com.sun.xml.internal.ws.transport.http.server.EndpointImpl.publish(EndpointImpl.java:134)
        at
com.sun.xml.internal.ws.spi.ProviderImpl.createAndPublishEndpoint(ProviderImpl.java:102)
        at javax.xml.ws.Endpoint.publish(Endpoint.java:170)
        at com.mowry.server.Main.main(Main.java:33)

When running the "CXF without Spring" example.

Does this problem sound like a common problem?

Full code below:
---8K--- (Main.java) ---
import javax.xml.ws.Endpoint;

import org.apache.cxf.Bus;
import org.apache.cxf.BusFactory;
import org.apache.cxf.transport.servlet.CXFNonSpringServlet;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.handler.ContextHandlerCollection;
import org.mortbay.jetty.servlet.Context;
import org.mortbay.jetty.servlet.ServletHolder;

public class Main {

        public static void main(final String[] args) throws Exception {
                final String busFactory =
System.getProperty(BusFactory.BUS_FACTORY_PROPERTY_NAME);
                System.setProperty(BusFactory.BUS_FACTORY_PROPERTY_NAME,
"org.apache.cxf.bus.CXFBusFactory");
                try {
                        // Start up the jetty embedded server
                        final Server httpServer = new Server(9000);
                        final ContextHandlerCollection contexts = new
ContextHandlerCollection();
                        httpServer.setHandler(contexts);
                        final Context root = new Context(contexts, "/", 
Context.SESSIONS);
                        final CXFNonSpringServlet cxf = new 
CXFNonSpringServlet();
                        final ServletHolder servlet = new ServletHolder(cxf);
                        servlet.setName("soap");
                        servlet.setForcedPath("soap");
                        root.addServlet(servlet, "/soap/*");
                        httpServer.start();
                        final Bus bus = cxf.getBus();
                        BusFactory.setDefaultBus(bus);
                        final GreeterImpl impl = new GreeterImpl();
                        Endpoint.publish("/Greeter", impl);
                } finally {
                        // clean up the system properties
                        if (busFactory != null) {
                                
System.setProperty(BusFactory.BUS_FACTORY_PROPERTY_NAME,
busFactory);
                        } else {
                                
System.clearProperty(BusFactory.BUS_FACTORY_PROPERTY_NAME);
                        }
                }
        }
---(Main.java)---
---(GreeterImpl.java)---

import java.util.logging.Logger;

// wsdlLocation = "file:./wsdl/hello_world.wsdl"
@javax.jws.WebService(name = "Greeter",
        serviceName = "SOAPService",
        targetNamespace = "http://apache.org/hello_world_soap_http";)
public class GreeterImpl implements Greeter {

        private static final Logger LOG =
Logger.getLogger(GreeterImpl.class.getPackage().getName());

        /*
         * (non-Javadoc)
         * 
         * @see
         *
org.objectweb.hello_world_soap_http.Greeter#greetMe(java.lang.String)
         */
        @Override
        public String greetMe(final String me) {
                LOG.info("Executing operation greetMe");
                System.out.println("Executing operation greetMe");
                System.out.println("Message received: " + me + "\n");
                return "Hello " + me;
        }
}
---(GreeterImpl.java)---



Reply via email to