webService接口分两种,一种是为别人提供接口,一种是使用别人接口,这里先详细描述如何写接口,让别人调用
准备:使用xfire写接口,引入与xfire相关的jar包,这是我本地项目的所有jar包,写接口用到了一部分。
1.在web.xml中增加对xfire的配置,代码如下(<url-pattern>/services/*</url-pattern>中services为自己定义,用于以后的访问):
<servlet>
<servlet-name>xfire</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>xfire</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>
2.在WEB-INF下新建xfire-servlet.xml,与web.xml同级,如图,xfire-servlet.xml中配置代码如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<import resource="classpath:org/codehaus/xfire/spring/xfire.xml" />
<!-- webService base -->
<!-- 第一部分:
固定配置-->
<bean id="webService" class="org.codehaus.xfire.spring.remoting.XFireExporter" abstract="true">
<property name="serviceFactory">
<ref bean="xfire.serviceFactory" />
</property>
<property name="xfire">
<ref bean="xfire" />
</property>
</bean>
<!-- 第二部分:
配置key:WBSTEST(访问地址中使用的名字)
wbsServiceTestImpl:为下面的第三部分bean的id
其他为固定
-->
<bean class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
<property name="urlMap">
<map>
<entry key="WBSTEST">
<ref bean="wbsServiceTestImpl"/>
</entry>
</map>
</property>
</bean>
<!-- 第三部分:
配置bean 的id名字自己定义,
ref中wbsServiceTest对应下一个第四部分bean的id,
com.lp.service.IWbsServiceTest为自己要发布的接口
-->
<bean id="wbsServiceTestImpl" parent="webService" class="org.codehaus.xfire.spring.remoting.XFireExporter">
<property name="serviceBean">
<ref bean="wbsServiceTest"/>
</property>
<property name="serviceClass">
<value>com.lp.service.IWbsServiceTest</value>
</property>
</bean>
<!-- 第四部分:
配置bean 的id名字自己定义,
class中 com.lp.service.WbsServiceTestImpl为自己要发布的接口实现类的路径
-->
<bean id="wbsServiceTest" class="com.lp.service.WbsServiceTestImpl">
</bean>
</beans>
3.开始写自己要发布的services
在项目上创建services包(根据自己的项目目录来)
创建接口类以及接口实现类
IWbsServiceTest:代码如下
package com.lp.service;
public interface IWbsServiceTest {
public String lpWbs(String name) throws Exception;
}
WbsServiceTestImpl:代码如下
package com.lp.service;
import org.springframework.stereotype.Service;
@Service("wbsServiceTest")
public class WbsServiceTestImpl implements IWbsServiceTest{
public String lpWbs(String name) throws Exception {
int a=1; int b=2;
System.out.println("哈哈成功了:server sayHello invoke"+a+b);
return "你好 " + name;
} }
到这里,一个简单的webservices就写完了,可以看一下是否成功,在浏览器地址栏输入访问地址:
http://10.1.41.36:8080/netCross/services/WBSTEST?wsdl出现如下如样子就可以了