webService之helloword(web)

时间:2023-03-10 01:04:37
webService之helloword(web)

spring 整合webservice

pom.xml文件

	<dependencies>
<!-- CXF WS开发 -->
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.0.1</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
<version>4.1.7.RELEASE</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
</dependency> </dependencies>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>tomcat-maven-plugin</artifactId>
<version>1.1</version>
<configuration>
<port>9998</port>
</configuration>
</plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
</plugins>
</build>

  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>CXFService</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFService</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping>

  applicationContext.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
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"> <!-- serviceClass 服务接口
address 服务访问地址
-->
<jaxws:server id="userService" address="/userService"
serviceClass="com.baidu.service.UserService">
<jaxws:serviceBean>
<bean class="com.baidu.service.imp.UserServiceImp" />
</jaxws:serviceBean>
</jaxws:server> </beans>

  webService之helloword(web)

包结构

  UserService接口

package com.baidu.service;

import javax.jws.WebMethod;
import javax.jws.WebService; import com.baidu.domain.User; @WebService
public interface UserService {
@WebMethod
public User get(Integer id);
@WebMethod
public void eat();
}

  UserServiceImp实现类

package com.baidu.service.imp;

import javax.jws.WebMethod;
import javax.jws.WebService; import com.baidu.domain.User;
import com.baidu.service.UserService;
@WebService
public class UserServiceImp implements UserService { public User get(Integer id) {
if(id==1){
User u=new User();
u.setId(2);
u.setName("张三");
return u;
}
return null;
} @Override
public void eat() {
System.out.println("123"); } }

  新建一个maven web project项目

pom.xml文件不变

applicationContext.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
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"> <!--
address 客户端访问服务路径
serviceClass 配置接口
serviceBean 配置实现类 -->
<jaxws:client id="userServiceClient"
serviceClass="com.baidu.service.UserService"
address="http://localhost:9998/werservicespring/services/userService" >
<!-- 来源消息拦截器
<jaxws:inInterceptors>
<bean class="org.apache.cxf.interceptor.LoggingInInterceptor"/>
</jaxws:inInterceptors> -->
<!-- 输出消息拦截器
<jaxws:outInterceptors>
<bean class="org.apache.cxf.interceptor.LoggingOutInterceptor" />
</jaxws:outInterceptors>-->
</jaxws:client> </beans>  

在测试之前需要创建接口  包结构也需要一样

package com.baidu.service;

import javax.jws.WebMethod;
import javax.jws.WebService; import com.baidu.domain.User; @WebService
public interface UserService {
@WebMethod
public User get(Integer id);
@WebMethod
public void eat();
}

  

测试类

package com.baidu.test;

import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.baidu.domain.User;
import com.baidu.service.UserService; @RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations="classpath:applicationContext.xml")
public class Test01 {
@Autowired
private UserService userService;
@Test
public void test01(){
//userService.eat();
User user = userService.get(1);
System.out.println(user);
}
}