项目中原就已有Axis框架,后便于和第三方提供的web service接口进行对接,引入了他们推荐的XFire框架,整了老半天才搞好,记录一下。
刚开始就是一个个jar包去网上找,不停的尝试启动应用,不停的报错,然后再根据错误,去找原因,再去找其他jar包,发现,这种效率实在太低。删除原有的jar,直接下载xfire-distribution-1.2.6.zip,把里面的lib目录下的jar,全部拷到项目下,终于可以成功发布helloworld实例了。为了尽量减少项目中无用的jar包,后来一个个jar删除,启动,看效果,采用这种笨拙的方式,发现就这五个必须都有,否则就会报错了。
commons-httpclient-3.0.jar
jdom-1.0.jar
jsr173_api-1.0.jar
wstx-asl-3.2.0.jar
xfire-all-1.2.6.jar
其中第一个“commons-httpclient-3.0.jar”在HelloWorld中是不需要的,但真正使用xfire调用第三方接口,就需要这个jar。没有“wstx-asl-3.2.0.jar”这个jar,启动不报错,但打开连接“http://localhost:8083/services/HelloWorld?wsdl” 就会报错。
其他地方配置很简单。
首先web.xml中,在
contextConfigLocation
。。。
/WEB-INF/classes/
xfire-servlet.xml
。。。
XFireServlet
org.codehaus.xfire.spring.XFireSpringServlet
。。。
XFireServlet
/servlet/XFireServlet/*
XFireServlet
/services/*
其中
xfire-servlet.xml 内容如下:
<?xml version="1.0" encoding="UTF-8"?>
ttp://www.springframework.org/dtd/spring-beans.dtd">http://www.springframework.org/dtd/spring-beans.dtd">
ttp://www.springframework.org/dtd/spring-beans.dtd">http://www.springframework.org/dtd/spring-beans.dtd">
<!-- 引入XFire预配置信息 -->
class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<!-- 使用XFire导出器 -->
class="org.codehaus.xfire.spring.remoting.XFireExporter"
lazy-init="false" abstract="true">
<!-- 引用xfire.xml中定义的工厂 -->
<!-- 引用xfire.xml中的xfire实例 -->
<!-- 定义HelloWorld服务 -->
<!-- 业务服务bean -->
<!-- 业务服务bean的窄接口类 -->
在spring的application.xml配置文件中,增加一个javabean定义:
HelloWorld 接口
package webservice;
public interface HelloWorld {
public String sayHello(String name);
}
}
HelloWorldBean 实现类
package webservice;
public class HelloWorldBean implements HelloWorld {
public String sayHello(String name) {
return "Hello"+name;
}
return "Hello"+name;
}
}
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9399028/viewspace-702206/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/9399028/viewspace-702206/