ssi基础上整合webservie

此篇文章延续上一篇的ssi框架整合,在原来的ssi框架上进行整合webservice,用的是cxf框架。
首先在src下新加一个包ws,写一个接口HelloWebService,在ws.impl下写一个实现类HelloWebServiceImpl
以下是接口的代码,这里接口要有@WebService注解

package ws;

import javax.jws.WebService;

@WebService
public interface HelloWebService {
		public String sayWebHello();
}

这是实现类的代码

package ws.impl;

import org.springframework.stereotype.Service;

import ws.HelloWebService;

@Service
public class HelloWebServiceImpl implements HelloWebService {
	/**
	 * hello web service
	 */
	public String sayWebHello() {
		return "hello web service";
	}

}

要使注解生效,在root-context.xml中添加扫描

<context:component-scan base-package="ws"></context:component-scan>

在root-context…xml中引入cxf的bean

<!-- 导入cxf的bean定义文件 -->
	<import resource="classpath:META-INF/cxf/cxf.xml" />  
	<import resource="classpath:META-INF/cxf/cxf-extension-soap.xml"/>  
	<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />

发布webservice,这里在头部添加标签,由于上篇中是最终的文件,所以标签是全的,就不再添加,如果报错可以去看标签是否遗漏。

<!-- 发布webSevice -->
    <jaxws:endpoint 
       id="testWS" 
       implementor="#helloWebServiceImpl"   
       address="/Hello" 
       implementorClass="ws.HelloWebService"
    /> 

在web.xml中配置webservice

<!-- 配置webservice -->
  <servlet>
  		<servlet-name>cxf</servlet-name>
  		<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
  		<load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
  		<servlet-name>cxf</servlet-name>
  		<url-pattern>/WebService/*</url-pattern>
  </servlet-mapping>

配置完毕,启动服务器,访问localhost:8080/EbizTest/WebService/Hello?wsdl会看到webservice以xml格式声明有哪些方法及描述等。至此,webservice发布完成。接下来进行调用测试,这里测试第一种方法,第二种方法下一篇再写。
首先建一个动态web工程,然后导入相应的jar包,接着进行更改编译路径,加入jar包这些日常操作。
接着右键项目目录,新建一个Web Service Client,输入刚才访问的地址localhost:8080/EbizTest/WebService/Hello?wsdl,若提示地址invalid(无效的),则可能是上个工程(也就是webservice的服务端)未启动服务。然后点next,默认放到src下,不用改了,再点finish。
此时会在src下生成一个ws包,包内有五个以HelloWebService开头的类,像这样
在这里插入图片描述
接下来在test包下写一个测试类TestWS,这里用main方法进行测试,用controller要配置很多东西,测试类代码如下

package test;

import java.rmi.RemoteException;

import ws.HelloWebServiceProxy;

public class TestWS {

	public static void main(String[] args) throws RemoteException {
			HelloWebServiceProxy helloWebService = new HelloWebServiceProxy();
			String msg = helloWebService.sayWebHello();
			System.out.println(msg);
	}

}

最后执行main方法进行测试,如果提示找不到加载类,可能是项目哪里有错误,看看jar包有没有出问题的,有的话移除就可以了。成功的话控制台会输出hello web service。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值