您的位置:首页 > 编程语言 > Java开发

Web应用中使用CXF不基于Spring的WebService发布

2013-02-26 09:52 891 查看
可基于CXFNonSpringServlet来实现

Java代码


package com.cxfnospring.test;

import javax.servlet.ServletConfig;

import javax.servlet.ServletException;

import org.apache.cxf.Bus;

import org.apache.cxf.BusFactory;

import org.apache.cxf.frontend.ServerFactoryBean;

import org.apache.cxf.transport.servlet.CXFNonSpringServlet;

public class CXFNonSpringServletImpl extends CXFNonSpringServlet {

private static final String SERVICE_SUFFIX = "";// "Facade";

private static final long serialVersionUID = 8262880864551976903L;

@Override

public void loadBus(ServletConfig servletConfig) throws ServletException {

super.loadBus(servletConfig);

Bus bus = getBus();

BusFactory.setDefaultBus(bus);

HelloWorldImpl helloworldImpl = new HelloWorldImpl();

ServerFactoryBean svrFactory = new ServerFactoryBean();

svrFactory.setServiceClass(HelloWorld.class);

svrFactory.setAddress("/HelloWorld");

svrFactory.setServiceBean(helloworldImpl);

// svrFactory.getServiceFactory().setDataBinding(new

// AegisDatabinding());

svrFactory.create();

}

}

要发布的HelloWorld是CXF上自带的列子:

Java代码


package com.cxfnospring.test;

public interface HelloWorld {

String sayHi(String text);

}

实现:

Java代码


package com.cxfnospring.test;

public class HelloWorldImpl implements HelloWorld {

public String sayHi(String text) {

return "Hello " + text;

}

}

然后修改Web.xml

Java代码


<servlet>

<servlet-name>CXFServlet</servlet-name>

<servlet-class>

com.cxfnospring.test.CXFNonSpringServletImpl

</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

在Tomcat Weblogic Jboss 中均测试通过
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: