在java项目中使用webservice

今天学习webservice,主要参考了网络上的一些文章。

1.关于原理的介绍:个人认为这篇文章写得不错了,戳这里。

2.关于demo的编写:个人认为这篇文章很简洁,也能运行成功,戳这里。

按照上面那篇文章的demo运行成功以后,我想在java web中加入一个webservice服务,供其他的java web项目调用。

1.首先,在项目中添加com.xdx.webservice包,如图所示。

2.在其中加入WetherServiceInter接口和其实现类WeatherService类。代码如下。

package com.xdx.webservice;import javax.jws.WebMethod;
import javax.jws.WebService;import com.xdx.entity.TAdmin;@WebService
public interface WeatherServiceInter {@WebMethodpublic String getWeatherByCityname(String name);public TAdmin getAdminById(int adminId);}

package com.xdx.webservice;import javax.jws.WebService;import org.springframework.web.context.ContextLoader;
import org.springframework.web.context.WebApplicationContext;import com.xdx.entity.TAdmin;
import com.xdx.service.AdminService;@WebService
public class WeatherService implements WeatherServiceInter {public String getWeatherByCityname(String name) {System.out.println(name+"天气晴朗");return name+"天气晴朗";}public TAdmin getAdminById(int adminId){WebApplicationContext webApplicationContext = ContextLoader.getCurrentWebApplicationContext();AdminService adminService=(AdminService) webApplicationContext.getBean("adminService");TAdmin admin = adminService.getAdminById(adminId);return admin;}}

3.发布webservice服务,这边我们在web项目启动的时候发布webservice服务,建立一个filter,在filter中写入如下代码,负责启动websocket(之前的demo)和webservice。这边我们选用8085端口作为webservice的端口。


package com.xdx.filter;import java.io.IOException;import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.xml.ws.Endpoint;import org.java_websocket.WebSocketImpl;import com.xdx.webservice.WeatherService;
import com.xdx.websocket.WsServer;public class StartFilter implements Filter {public void destroy() {}public void doFilter(ServletRequest arg0, ServletResponse arg1,FilterChain arg2) throws IOException, ServletException {}public void init(FilterConfig arg0) throws ServletException {this.startWebsocketInstantMsg();}/*** 启动即时聊天服务*/public void startWebsocketInstantMsg() {WebSocketImpl.DEBUG = false;WsServer s;s = new WsServer(8887);s.start();System.err.println("websocket启动了");//启动webserviceEndpoint.publish("http://localhost:8085/ws_server/weather", new WeatherService());System.out.println("webservice启动了");}
}

4.在web.xml中配置filter,配置如下。

<!-- filter --><filter><filter-name>startFilter</filter-name><filter-class>com.xdx.filter.StartFilter</filter-class></filter>

5.运行项目,在浏览器输入http://localhost:8085/ws_server/weather?wsdl  测试一下,会出现如下的xml文件。

说明已经发布成功了。

6.接下来我们在另外一个web项目(名为m_gecko)中来调用该webservice服务里面的方法。首先,通过cmd进入m_gecko项目的src/main/java目录下,如图所示,输入wsimport -keep http://localhost:8085/ws_server/weather?wsdl

出现上述提示,说明已经在m_gecko项目中生成了webservice的客户端代码,我们刷新一下m_gecko项目看看。果然是的。

7.在m_gecko项目中我们来写调用webservice服务的方法。首先我们来调用getWeatherByCityname方法。

    @ResponseBody@RequestMapping(value="webserviceDemo1", produces = "text/html; charset=utf-8")public String webserviceDemo1(){WeatherServiceService factory=new WeatherServiceService();WeatherService service=factory.getWeatherServicePort();String result=service.getWeatherByCityname("厦门");return result;}

运行m_gecko项目(同时也要运行webservice服务所在的项目warrior项目),在浏览器中输入http://localhost:8080/m_gecko/webserviceDemo1。

然后再来调用getAdminById方法。

@ResponseBody@RequestMapping(value="webserviceDemo2")public TAdmin webserviceDemo2(){WeatherServiceService factory=new WeatherServiceService();WeatherService service=factory.getWeatherServicePort();TAdmin admin=service.getAdminById(5);return admin;}

效果如下

java工程webservice的应用案例相关推荐

  1. java webservice接口开发_搭建Soap webservice api接口测试案例系统

    Eclipse下创建WebService项目,主要目的是作为Postman.soapUI等工具进行soap webservice 接口测试的案例. 本文基于Axis2框架,在eclipse环境下搭建w ...

  2. java webservice测试_搭建Soap webservice api接口测试案例系统

    Eclipse下创建WebService项目,主要目的是作为Postman.soapUI等工具进行soap webservice 接口测试的案例. 本文基于Axis2框架,在eclipse环境下搭建w ...

  3. java 生成stub,Java工程使用axis的stub生成webservice客户端代码

    Axis2提供了一个wsdl2java.bat命令可以根据WSDL文件自动产生调用WebService的代码.wsdl2java.bat命令可以在/bin目录中找到. 在使用wsdl2java.bat ...

  4. Java开发WebService(使用Java-WS)

    前言: 初学Java,因为工作需要,直接跳到开发WebService.以前用.NET开发过WebService,对比一下,Java的WebService开发部署难度高了不止一个档次.网上的教程各式各异 ...

  5. 如何用shell脚本编译java工程

    欢迎支持笔者新作:<深入理解Kafka:核心设计与实践原理>和<RabbitMQ实战指南>,同时欢迎关注笔者的微信公众号:朱小厮的博客. 欢迎跳转到本文的原文链接:https: ...

  6. inttostr java_Delphi和Java实现webservice架构

    Webservice现在已经不是什么新技术了,用java建立webservice是快捷的,但是用java在制作客户端的感觉上总是不如 Delphi的(个人感觉,java高手们不要笑话我),那我们就用j ...

  7. 打成jar包 在命令行下执行java工程

    将java工程打成jar包,但第三方jar包并没有包含在包中,当在命令行中运行jar包时,出现类找不到的异常, 在网上看到解决办法是将第三方jar包放到JDK的扩展类文件夹中(%JAVA_HOME%/ ...

  8. java 开发webservice

    这几天用java开发一个webservice,搞死了.java果然很难侍候! 传说java搞webservice,有好几种途径(为什么不是一种?要搞这么多种,让人一听,头都大了.当然啦,生物多样性总是 ...

  9. Apache CXF生成java代码用java调用Webservice接口

    这里写自定义目录标题 使用java调用webservice接口 使用java调用webservice接口 当我们使用java去访问webservice的接口时,有很多种方式,这里我们使用apache ...

最新文章

  1. 我的Android进阶之旅------Android项目目录结构分析
  2. sql 精读(二) 标准 SQL 中的编号函数
  3. ios 系统状态栏样式修改_iOS设置状态栏样式,statusBarStyle
  4. 关于Linux系统的运行级别
  5. macos catalina 合盖 风扇狂转_防爆排风扇BFS-400叶轮直径400mm功率180W/220V转速1400rpm风量2400_...
  6. linux多线程_Java+Linux,深入内核源码讲解多线程之进程
  7. Linux应用编程之共享内存实例
  8. 文章用图的修改和排版(2)
  9. PHP的抽象类与接口
  10. 三星Galaxy S22系列国行版获3C认证:依旧祖传25W快充
  11. STL--queue
  12. python程序怎么给别人运行_如何把自己写的python程序给别人用
  13. 17-11-01模拟赛
  14. gmail 邮箱附件大小 突破10M
  15. python听歌识曲爬虫_Python爬取网易云音乐热门评论的搜索结果-阿里云开发者社区...
  16. Android 7.0 ----- Direct Boot模式(AppClock)
  17. 营销型网站的概念及设计制作过程中的注意事项
  18. python 列表操作
  19. 未在服务器上找到sql安装程序文件,MS SQL Server 2000/以前的某个程序安装已在安装计算机上创建挂起的文件操作。...
  20. ADS和candence如何调用veriloga文件并进行编译?

热门文章

  1. 【Docker】Docker的三大核心组件
  2. 2022-2028年中国电容器电子薄膜行业市场研究及前瞻分析报告
  3. Go 学习笔记(81)— Go 性能分析工具 pprof
  4. LeetCode19. Remove Nth Node From End of List 删除链表中的倒数第n个位置的元素
  5. 有存款,才能过得更踏实
  6. 【软件工程】VB版机房文档总结
  7. 数据类型对应的字节数
  8. 使用Keil语言的嵌入式C编程教程(上)
  9. SOLO: 按位置分割对象
  10. workerman的基本用法