You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Benson Margulies <bi...@gmail.com> on 2009/02/23 20:30:23 UTC

Re: How do I setup up both a servlet engine and webservices that run on the same port?

You can configure handlers for jetty that point one URL to CXF and
others to other servlets.

On Mon, Feb 23, 2009 at 2:06 PM, Garry Watkins <ga...@gmail.com> wrote:
> I have an application that I need both a web server, and webservices
> to run together on the same port.  How do I configure cxf to work?
>
> Example
>
> I need to run on http://192.168.10.100:9000/
>        From this directory I will serve misc html and resources for a flex
> application
>
> Then I need to run two different web services
>
>  http://192.168.10.100:9000/ws/SomeWebService1
>  http://192.168.10.100:9000/ws/SomeWebService2
>
> How do I set this up?
>
> This is what I have so far.  Please help I have been beating myself up
> all morning.  I would also prefer to do this without the spring
> configuration.  I already have a zillion jars so I don't really want
> that many more.
>
> TIA
>
> Garry
>
>        private void setupHTTPServer(Properties props) throws Exception {
>        SelectChannelConnector con = new SelectChannelConnector();
>            String ipAddress = props.getProperty(HTTP_IP_ADDRESS);
>            con.setHost(ipAddress);
>
>            int port = 8080;
>        try {
>            port =
> Integer.parseInt(props.getProperty("slx.http.port"));
>        }
>        catch(NumberFormatException nfe){
>            // do nothing default to 8080
>        }
>                con.setPort(port);
>
>                JettyHTTPServerEngineFactory sef = new
> JettyHTTPServerEngineFactory();
>                JettyHTTPServerEngine eng =
> sef.createJettyHTTPServerEngine(port, "http");
>                eng.setConnector(con);
>
>                List<Handler> handlers = new ArrayList<Handler>();
>                ResourceHandler resource_handler = new ResourceHandler();
>                resource_handler.setResourceBase("../webServerRoot");
>                handlers.add(resource_handler);
>
>                ServletHandler servlet_handler = new ServletHandler();
>                servlet_handler.addServletWithMapping(, "/MasterStatus");
>
>  servlet_handler.addServletWithMapping(SendEmployeesServlet.class, "/
> SendEmployees");
>
>                handlers.add(servlet_handler);
>
>                eng.setHandlers(handlers);
>        }
>
>        private void setupServices(Properties props) throws Exception {
>                String ipAddress = props.getProperty(HTTP_IP_ADDRESS);
>                String port = props.getProperty(HTTP_PORT);
>                Enumeration<?> keys = props.keys();
>                while(keys.hasMoreElements()){
>                        String key = (String)keys.nextElement();
>                        if (key.startsWith(WEB_SERVICE_URL)){
>                                String url =
> props.getProperty(key).replace("{http.ipAddress}",
> ipAddress).replace("{http.port}", port);
>
>                                String subKey =
> key.replaceFirst(WEB_SERVICE_URL, "");
>                                String implKey = WEB_SERVICE_IMPL + subKey;
>                                String implClassName =
> props.getProperty(implKey);
>
>                                Class<?> klass =
> Class.forName(implClassName);
>                                Constructor<?> konstr =
> klass.getConstructor(new Class[]{});
>                                Object svcImpl = konstr.newInstance(new
> Object[]{});
>
>                                JaxWsServerFactoryBean svrFactory = new
> JaxWsServerFactoryBean();
>                            svrFactory.setServiceClass(klass);
>                            svrFactory.setAddress(url);
>                            svrFactory.setServiceBean(svcImpl);
>
>                            svrFactory.create();
>                        }
>                }
>        }