基于Spring注解和XML配置的WebService

一、需要的jar包

commons-logging-1.1.1.jar
cxf-2.4.3.jar
neethi-3.0.1.jar
spring-aop-3.0.5.RELEASE.jar
spring-asm-3.0.5.RELEASE.jar
spring-beans-3.0.5.RELEASE.jar
spring-context-3.0.5.RELEASE.jar
spring-context-support-3.0.5.RELEASE.jar
spring-core-3.0.5.RELEASE.jar
spring-expression-3.0.5.RELEASE.jar
spring-web-3.0.5.RELEASE.jar
wsdl4j-1.6.2.jar
xmlschema-core-2.0.1.jar

二、有关WebService的注解

注解接口类的:@WebService 表明这个接口类是用于WebService用的。
注解方法参数的:@WebParam(name = "name") name="name"。表示参数名称为name(双引号里面的值为参数名称)
注解方法的:@WebMethod(operationName="sayHello5") 告知该方法是用于WebService用的。operationName="sayHello5"表示方法的方法名为sayHello5
注解方法返回值的:@WebResult(name = "result") (name = "result")告知方法的返回值变量为result。

三、Demo

新建一个接口来提供webService服务

@WebService
public interface Test1 {

public String sayHello();

public void sayHello2(@WebParam(name = "name") String name);

public String sayHello3(@WebParam(name = "name") String name);

@WebMethod(operationName="sayHello4")
public void sayHello4(@WebParam(name = "name") String name);

@WebMethod(operationName="sayHello5")
@WebResult(name = "result")
public String sayHello5(@WebParam(name = "name") String name);

}

接口的实现

@WebService(endpointInterface = "com.zbeninfo.webservice.Test1")
@Component//这个是spring的注解
public class Test1Impl implements Test1{

@Override
public String sayHello() {
return "say hello";
}

@Override
public void sayHello2(String name) {
System.out.println("hello," + name);
}

@Override
public String sayHello3(String name) {
return "test:"+name;
}

@Override
public void sayHello4(String name) {
System.out.println("调用webservice的insert方法成功,参数:name="+name);
}

@Override
public String sayHello5(String name) {
return "sayHello5:"+name;
}

}

接口实现类也用@WebService来进行注解。里面有endpointInterface = "com.zbeninfo.webservice.Test1"。endpointInterface是指明webservice的接口。接下来就是实现该接口的方法。普通的java方法。
还有一个注解:@Component。该注解主要用于在不确定该类是什么类型的情况下(controller、service、dao)。用@Component注解一个类,即等于在spring的配置文件中设置了定义了bean

创建webservice的配置文件了(放在src下,和普通的spring配置文件放在一起即可):applicationContext-webservice.xml


xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xmlns:jaxws="http://cxf.apache.org/jaxws"
xsi:schemaLocation="
 http://www.springframework.org/schema/beans 
 http://www.springframework.org/schema/beans/spring-beans.xsd 
 http://cxf.apache.org/jaxws http://cxf.apache.org/schemas/jaxws.xsd">
 






配置文件说明:
beans的命名空间不做过多的解释,照着添加就行。
主要解释jaxws:endpoint标签。
jaxws:endpoint标签用于设置和发布WebService类用的。
id表示id属性,
implementor表示该WebService接口的具体实现类。
address表示用于WebService用于发布的地址。

在web.xml中需要配置cxf的相关配置

首先添加加载有关WebService的配置文件
如:

contextConfigLocation
/WEB-INF/classes/applicationContext-*.xml

加载CXF的相关配置:


CXFServlet
org.apache.cxf.transport.servlet.CXFServlet
1


CXFServlet
/ws/*

表示凡是/ws/*的路径都是WebService的地址。

 

你可能感兴趣的:(四,框架及工具)