通过spring宣布webservice接口

spring jar包+cxf jar Java包 下列文件丢失jar包需要下载自己

项目结构

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaXRscWk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

1、实体类

package com.test.entity;

public class User {
public User(String name, String pwd, String sex) {
super();
this.name = name;
this.pwd = pwd;
this.sex = sex;
} private String name; private String pwd; private String sex; public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public String getPwd() {
return pwd;
} public void setPwd(String pwd) {
this.pwd = pwd;
} public String getSex() {
return sex;
} public void setSex(String sex) {
this.sex = sex;
} }

2、webservice接口

package com.test.webservice;

import java.util.List;

import javax.jws.WebService;  

import com.test.entity.User;

/**
* 声明 webService 接口
* @author Administrator
*
*/
@WebService
public interface IWebservice { public String say(String str);
public String findList();
}

3、接口实现

package com.test.webservice.imp;

import java.util.ArrayList;
import java.util.List; import javax.jws.WebService; import net.sf.json.JSONArray; import com.test.entity.User;
import com.test.webservice.IWebservice; /**
* 声明这个类是 :IWebservice实现类
* @author Administrator
*
*/ @WebService(endpointInterface="com.test.webservice.IWebservice")
public class WebServiceImpl implements IWebservice { public String say(String str) { return str;
} public String findList(){ List<User> u=new ArrayList<User>(); u.add(new User("张三", "12343", "男"));
u.add(new User("妮妮", "12343", "女"));
u.add(new User("利弊", "9900000", "女")); JSONArray json=JSONArray.fromObject(u); return json.toString();
}
}

4、cxf-service.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">
<!--
<import resource="classpath:META-INF/cxf/cxf.xml" />
<import resource="classpath:META-INF/cxf/cxf-servlet.xml" />
-->
<!-- id 自己定义 serviceClass接口完整包名 address訪问地址 -->
<jaxws:server id="webservice" serviceClass="com.test.webservice.IWebservice" address="/webservice">
<jaxws:serviceBean>
<!-- 实现类 -->
<bean class="com.test.webservice.imp.WebServiceImpl" />
</jaxws:serviceBean>
</jaxws:server>
</beans>

5、web.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>cxf_service</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file> </welcome-file-list> <context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring/config/cxf-service.xml</param-value>
</context-param> <listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener> <servlet>
<servlet-name>CXFServlet</servlet-name>
<servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>CXFServlet</servlet-name>
<url-pattern>/services/*</url-pattern>
</servlet-mapping> </web-app>

6、client调用接口

package com.test.web;

import org.apache.cxf.endpoint.Client;
import org.apache.cxf.jaxws.JaxWsClientFactoryBean;
import org.apache.cxf.jaxws.JaxWsProxyFactoryBean;
import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory; import com.test.webservice.IWebservice; public class TestWebService { public static void main(String[] args) { //调用WebService // JaxWsProxyFactoryBean factory = new JaxWsProxyFactoryBean();
//
// factory.setServiceClass(IWebservice.class);
//
// factory.setAddress("http://localhost:8080/cxf_service/services/webservice");
//
// IWebservice service = (IWebservice) factory.create();
// System.out.println("#############Client getUserByName##############");
// System.out.println(service.say("ABC")); //创建JaxWsDynamicClientFactory 实例
JaxWsDynamicClientFactory fdc=JaxWsDynamicClientFactory.newInstance();
//获取链接
Client client= fdc.createClient("http://localhost:8080/cxf_service/services/webservice? wsdl"); //调用接口名称 上传參数 返回结果
Object[] obj=null;
Object[] objs=null;
try {
//运行指定方法 say 方法名 參数 obj = client.invoke("say","我叫张三");
//运行制定方法 findList 方法名
objs = client.invoke("findList"); System.out.println(obj[0].toString());
System.out.println(objs[0].toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}

Spring 组cxf宣布webservice的更多相关文章

  1. struts1+spring+myeclipse +cxf 开发webservice以及普通java应用调用webservice的实例

    Cxf + Spring+ myeclipse+ cxf 进行  Webservice服务端开发 使用Cxf开发webservice的服务端项目结构 Spring配置文件applicationCont ...

  2. Spring Boot+CXF搭建WebService(转)

    概述 最近项目用到在Spring boot下搭建WebService服务,对Java语言下的WebService了解甚少,而今抽个时间查阅资料整理下Spring Boot结合CXF打架WebServi ...

  3. Spring集成CXF发布WebService并在客户端调用

    Spring集成CXF发布WebService 1.导入jar包 因为官方下载的包里面有其他版本的sprring包,全导入会产生版本冲突,所以去掉spring的部分,然后在项目根目录下新建了一个CXF ...

  4. Spring boot+CXF开发WebService

    最近工作中需要用到webservice,而且结合spring boot进行开发,参照了一些网上的资料,配置过程中出现的了一些问题,于是写了这篇博客,记录一下我这次spring boot+cxf开发的w ...

  5. Spring boot+CXF开发WebService Demo

    最近工作中需要用到webservice,而且结合spring boot进行开发,参照了一些网上的资料,配置过程中出现的了一些问题,于是写了这篇博客,记录一下我这次spring boot+cxf开发的w ...

  6. Spring MVC + CXF实现webservice接口

    本来都是WebAPI/RestfulAPI接口对外提供接口的,突然有个需求要提供WebService接口,本想着Spring和CXF这么成熟的两个产品,这么的也整不出什么幺蛾子来啊. 结果还真是出了几 ...

  7. spring 与 CXF 整合 webservice 出现error “Unable to locate Spring NamespaceHandler for XML schema namespace” 总结

    我试了多个版本的spring 发现 出现error : Unable to locate Spring NamespaceHandler for XML schema namespace 并非都是sp ...

  8. spring集成cxf实现webservice接口功能

    由于cxf的web项目已经集成了Spring,所以cxf的服务类都是在spring的配置文件中完成的.以下是步骤:第一步:建立一个web项目.第二步:准备所有jar包.将cxf_home\lib项目下 ...

  9. Spring Boot+CXF搭建WebService

    Spring Boot WebService开发 需要依赖Maven的Pom清单 <?xml version="1.0" encoding="UTF-8" ...

随机推荐

  1. [Android 性能优化系列]内存之提升篇--应用应该怎样管理内存

    大家假设喜欢我的博客,请关注一下我的微博,请点击这里(http://weibo.com/kifile),谢谢 转载请标明出处(http://blog.csdn.net/kifile),再次感谢 原文地 ...

  2. 展示C代码覆盖率的gcovr工具简单介绍及相关命令使用演示样例

    (本人正在參加2015博客之星评选,诚邀你来投票,谢谢:username=zhouzxi">http://vote.blog.csdn.net/blogstar2015/candida ...

  3. 关于在IISserver上执行asp.net Web程序出现以下 “Could not load file or assembly。。。”问题的

    Could not load file or assembly 'System.EnterpriseServices, Version=4.0.0.0, Culture=neutral, Public ...

  4. 【Codeforces Round #442 (Div. 2) C】Slava and tanks

    [链接] 我是链接,点我呀:) [题意] 有n个位置,每个位置都可能有不定数量的tank; 你每次可以选择一个位置投掷炸弹. 并且,这个位置上的所有tank都会受到你的攻击. 并且失去一点体力. 然后 ...

  5. Windows下安装Resin及配置具体解释与公布应用

        关于Resin的优点,网上介绍了一大堆.小编经不住诱惑,决定试用一下. 眼下Resin的最新版本号为:4.0.40.能够从官网直接下载.     1. 将下载下来的Resin包解压开,会看到一 ...

  6. rz、sz (上传下载)命令参数的解释

    $ man rz,查看帮助: -a, –ascii -b, –binary 用binary的方式上传下载,不解释字符为 ascii -e, –escape 强制escape 所有控制字符,比如 Ctr ...

  7. C_C++指针指针应用详解

    前言:复杂类型说明 要了解指针,多多少少会出现一些比较复杂的类型,所以我先介绍一下如何完全理解一个复杂类型,要理解复杂类型其实很简单,一个类型里会出现很多运算符,他们也像普通的表达式一样,有优先级,其 ...

  8. 【例题 6-1 UVA - 210】Concurrency Simulator

    [链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 队列模拟题. 注意初始化.. 然后题目中是让读入一个数据组数然后再输入数据的. 但样例..但样例没有!? [代码] #include ...

  9. YASM User Manual

    This document is the user manual for the Yasm assembler. It is intended as both an introduction and ...

  10. PHP Filesystem 函数(文件系统函数)(每日一课的内容可以从php参考手册上面来)

    PHP Filesystem 函数(文件系统函数)(每日一课的内容可以从php参考手册上面来) 一.总结 1.文件路径中的正反斜杠:当在 Unix 平台上规定路径时,正斜杠 (/) 用作目录分隔符.而 ...