Spring和XFIRE结合

上一周搞了三天Spring和XRIRE结合,也没弄出个眉目,后来有别的工作就搁下了。昨天看那个同事也在搞,所以继续研究,终于搞出来了。
步骤一:建立一个普通的web项目,然后导入spring和xfire所需要的jar包;
步骤二:在web.xml中配置如下:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>

</context-param>

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>
<servlet>
<servlet-name>XFireServlet</servlet-name>
<servlet-class>
org.codehaus.xfire.spring.XFireSpringServlet
</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/servlet/XFireServlet/*</url-pattern>
</servlet-mapping>

<servlet-mapping>
<servlet-name>XFireServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
步骤三:建立接口MathService和类MathServiceImpl;
步骤四:在applicationContext.xml中配置如下:

<import resource="classpath:org/codehaus/xfire/spring/xfire.xml" />


<!-- xFire -->
<bean id="mathBean" class="com.tangtang.test.MathServiceImpl" autowire="byName"/>

<bean id="mathWebService" class="org.codehaus.xfire.spring.remoting.XFireExporter"> <!-- WebService的名字 -->
<property name="xfire" ref="xfire" />
<property name="serviceBean" ref="mathBean" /> <!-- WebService的实现类bean -->
<property name="serviceClass" value="com.tangtang.test.MathService" />
<!-- <property name="inHandlers" ref="authenticationHandler"/> 普通的用户名密码的方式进行WebService的验证-->
</bean>

步骤五:部署,启动tomcat即可发布:
url:[url]http://localhost:8080/0721WebServiceTest/services/MathService?wsdl[/url]即可访问。

说明:0721WebServiceTest为工程名 MathService为部署的服务名

建立客户端即可远程访问:
首先在本工程中建立:
Service s=new ObjectServiceFactory().create(MathService.class);
XFireProxyFactory xf=new XFireProxyFactory(XFireFactory.newInstance().getXFire());
String url="http://localhost:8080/0721WebServiceTest/services/MathService";
try
{

MathService hs=(MathService) xf.create(s,url);
String st=hs.add(10, 20);
System.out.print(st);
}
catch(Exception e)
{
e.printStackTrace();
}



在其他工程中如下建立客户端:

//ip:172.20.57.101
String url="http://172.20.57.101:8080/0721WebServiceTest/services/MathService?wsdl";
try {
Client c = new Client(new URL(url));
Object[] obj = c.invoke("add", new Integer[]{20,30});
for(int i = 0; i < obj.length;i++) {
System.out.println(obj[i]);
}
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}




本来想把所有的
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值