基于JAX-WS的webService开发实例

最近因为工作原因接触到webService,所以记录下开发中碰到的问题,方便自己以后复习,顺便发扬一下开源精神。刚刚接触webServie如果有什么错误欢迎大家指正。

本地环境:myEclipse10.6 tomcat7 JDK7 jaxws-ri-2.2.10

第一步:创建一个基于JAX-WS的webService工程
如果原先拥有正式项目也可以直接使用原有项目实现webService接口

 

第二步:引用库

引用myEclipse libray中的JAX-WS 2.1 Runtime Libraries(Project Metro 1.1)和JAX-WS 2.1 APILibraries

不知道为什么有些myEclipse中却无法找到这两个库,其中就包括我。

解决办法:下载jaxws-ri,将lib目录下的jar包全部复制到项目中lib目录下。

下载地址:https://jax-ws.java.net/

 

第三步:创建测试接口

package com.demo.webservice;import javax.jws.WebMethod;
import javax.jws.WebService;@WebService
public class Test {//处理方法数量名称任意
    @WebMethodpublic String test1(String str){return "测试1接收参数:" + str;}
}

第四步:在WEB-INF目录下创建sun-jaxws.xml文件

<?xml version = "1.0"?>
<endpoints version="2.0"xmlns="http://java.sun.com/xml/ns/jax-ws/ri/runtime"><!-- webService接口配置参数 name名称 implementation实现接口的类 url请求此接口的地址 --><endpoint name="test1"implementation="com.webservice.Test"url-pattern="/test1"></endpoint></endpoints>


第五步:修改web.xml在web.xml中新增以下配置

<!-- 监听器 --><listener><listener-class>com.sun.xml.ws.transport.http.servlet.WSServletContextListener</listener-class></listener><servlet><servlet-name>test1</servlet-name><servlet-class>com.sun.xml.ws.transport.http.servlet.WSServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet-mapping>  <servlet-name>test1</servlet-name>  <url-pattern>/test1</url-pattern><!-- select请求地址 就是在sun-jaxwx.xml配置的url -->  </servlet-mapping>

 

项目结构:

 

第六步:测试

发布项目到tomcat中,启动tomcat。

打开浏览器输入地址:http://localhost:8080/webService/test1?wsdl

如果出现下面这种页面说明webService已经发布成功

 

第七步:编写webService客户端

1.创建新的Web Project项目webServiceClient

2.使用myEclipse工具创建webService客户端

3.选择你新建的项目webServiceClient(新项目名称) 点击next

4.输入webService服务端地址,就是刚刚在浏览器输入的地址,点击next

5.等待一会儿,继续点击next

 

3.编写测试类

package com.demo.test;import com.demo.webservice.Test;
import com.demo.webservice.TestService;public class ClinetTest {public static void main(String[] args) {TestService service = new TestService();//根据接口的名称改变Test testPort = service.getTestPort();String param = "测试1参数-你好!";//请求参数String result = testPort.test1(param);//请求System.out.println(result);//打印返回值
    }
}

结果

项目结构

 

 

转载于:https://www.cnblogs.com/LFBlog/p/6605653.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/372602.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

完整的WebApplication JSF EJB JPA JAAS –第2部分

视图–创建和JSF设置 本教程是第1部分的继续。 让我们创建一个新的Dynamic Web Project 。 如下图所示创建它&#xff1a; 注意&#xff1a;在某些时候&#xff0c;Eclipse会询问您是否要添加JSF功能&#xff08;自动完成&#xff09;&#xff0c;然后启用它。 就像下面的屏幕…

lempel ziv matlab,基于Python的LempelZiv算法的熵估计

此函数允许估计时间序列的熵。它基于Lempel-Ziv压缩算法。对于长度为n的时间序列&#xff0c;熵估计为&#xff1a;E(1/n和L_i)^-1 ln(n)式中&#xff0c;L逯i是从位置i开始的最短子串的长度&#xff0c;该子串之前没有从位置1出现到i-1。当n接近无穷大时&#xff0c;估计的熵收…

Android使用绘图Path总结

Path作为Android中一种相对复杂的绘图方式&#xff0c;官方文档中的有些解释并不是很好理解&#xff0c;这里作一个相对全面一些的总结&#xff0c;供日后查看&#xff0c;也分享给大家&#xff0c;共同进步。 1.基本绘图方法 addArc(RectF oval, float startAngle, float swee…

2017.3.23下午

下午通过对OSPF基本原理进一步的学习&#xff0c;对上午学习的内容进行了复习。 转载于:https://www.cnblogs.com/bgd140206206/p/6606192.html

编写Eclipse插件教程–第1部分

Eclipse是三个最受欢迎的Java开发IDE之一。 其成功的原因之一是其可扩展性。 对于任何知道该怎么做并且已经做到的人来说&#xff0c;编写eclipse插件都可以非常轻松快捷。 不幸的是&#xff0c;第一次在Eclipse中进行操作可能会非常耗时且令人沮丧。 Eclipse框架非常庞大&…

简单Window下 Android Studio的安装

&#xff08;1&#xff09;首先安装JDK 下载JDK 本人觉得官方网站下JDK比较慢&#xff0c;可以直接百度JDK&#xff0c;&#xff08;如果是64位 百度搜索记得64位&#xff09; 类似于这样的下载 安装可以看下教程&#xff0c;包括环境变量的配置 如何安装JDK &#xff08;2&…

日期处理一之NSLalendar的使用

一、日期和时间模式 日期和时间格式由日期和时间模式字符串组成&#xff0c;在日期和时间模式字符串中未加引号的A到‘Z’和a到‘z’被解释为模式字母&#xff0c;用来表示日期或时间。字符串元素&#xff0c;文本可以使用单引号&#xff08;‘’&#xff09;引起来使用。定义以…

java的使用Pair要导入什么包,第三方jar包的使用

被导入的外部类所在源文件通常要打包成jar包&#xff0c;java中的jar文件装的是 .class 文件。它是一种压缩格式和zip兼容&#xff0c;被称为jar包。JDK提供的许多类&#xff0c;也是以jar包的形式提供的。在用的时候呢&#xff0c;你的文件里有很多个类&#xff0c;把这些类和…

十大最受欢迎的新Eclipse插件

Eclipse Marketplace仍然是发现有趣且相关的Eclipse插件的地方。 通过Eclipse Marketplace客户端&#xff0c;每月成功安装100,000多个基于Eclipse的产品。 我们提供了过去30天 以来所有时间最受欢迎的插件列表。 我认为看看过去12个月中最受欢迎的新插件会很有趣。 以下列出了…

在桌面显示我电脑

打开Windows PowerShell&#xff08;一个像是命令提示符的东西[蓝底白字]&#xff0c;但不是命令提示符&#xff09;&#xff0c;在Windows PowerShell内输入cmd回车&#xff0c;当返回如下信息&#xff1a; Microsoft Windows [版本 6.2.9200](c) 2012 Microsoft Corporation。…

《Java技术》第二次作业计科1501赵健宇

&#xff08;一&#xff09;学习总结 1.使用Eclipse关联jdk源代码,查看String类的equals&#xff08;&#xff09;方法 equals&#xff08;&#xff09;方法截图 “”比较的是地址。equals方法他同样使用号进行内存地址的比较。但是equals方法重写如果号比较不相等&#xff0c;…

注射php,UPDATE注射(mysqlphp)的两个模式

一.测试环境&#xff1a;OS:Windowsxpsp2php:php4.3.10(mysql4.1.9apache1.3.33二.测试数据库结构&#xff1a;-----start-----数据库:test----------------------------------------------------------------表的结构userinfo--CREATETABLEuserinfo(groudidvarchar(12)NOTNULL…

JUnit的内置Hamcrest Core Matcher支持

在用JUnit和Hamcrest改进assertEquals的文章中&#xff0c;我简要讨论了Hamcrest “ 核心 ”匹配器与JUnit的现代版本“结合”在一起的情况。 在那篇文章中&#xff0c;我特别关注了JUnit的assertThat&#xff08;T&#xff0c;Matcher&#xff09;静态方法与Hamcrest核心is()匹…

FormsAuthentication使用指南,实现登录

一般情况下&#xff0c;在我们做访问权限管理的时候&#xff0c;会把用户的正确登录后的基本信息保存在Session中&#xff0c;以后用户每次请求页面或接口数据的时候&#xff0c;拿到Session中存储的用户基本信息&#xff0c;查看比较他有没有登录和能否访问当前页面。Session的…

Java开发高性能网站需要关注的事

转自&#xff1a;http://www.javabloger.com/java-development-concern-those-things/ 近期各家IT媒体举办的业内技术大会让很多网站都在披露自己的技术内幕与同行们分享&#xff0c;大到facebook&#xff0c;百度&#xff0c;小到刚起步的网站。facebook&#xff0c;百度之类的…

mysql到oracle数据迁移,mysql数据迁移到oracle

mysql: utf-8字符集oracle: Al32UTF8步骤&#xff1a;1. 从mysql导出csv格式数据&#xff0c;导出时设置default_character_setgbk&#xff0c;否则会乱码2.上传至linux服务器(oracle服务器),用以下命令将windows的/r/n换成/r:sed -i "s//r//g" file3.将gbk编码转为u…

测试抽象类和模板方法模式

摘自Wikipedia&#xff0c;“模板方法定义了算法的程序框架。 子类可以覆盖一个或多个算法步骤&#xff0c;以允许不同的行为&#xff0c;同时确保仍然遵循总体算法。” 通常&#xff0c;此模式由两个或多个类组成&#xff0c;一个是提供模板方法&#xff08;非抽象&#xff09…

LoadRunner性能测试结果计数器指标说明

LoadRunner性能测试结果计数器指标说明 转载2015-09-23 09:57:13标签&#xff1a;loadrunner计数器针对性能测试结果分析过程中&#xff0c;面对大量的测试数据&#xff0c;反而感觉无从下手分析。今天我们就Windows操作系统计数器中的个别被监控对象进行简单的说明。 Memory: …

Elasticsearch之需要注意的问题(es和jdk版本)

&#xff08;1&#xff09;在使用java代码操作es集群的时候 要保证本地使用的es的版本和集群上es的版本保持一致。 &#xff08;2&#xff09;保证集群中每个节点的JDK版本和es基本配置一致 这个很简单&#xff0c;不多说。 &#xff08;3&#xff09;es集群中jdk版本不一致 …

oracle视图查询数据慢,8i查询DBA_FREE_SPACE视图极慢的问题

还是那套古老的8.1.7.4&#xff0c;在该系统上检查表空间使用情况的SQL运行缓慢&#xff0c;其SQL如下:SELECT D.TABLESPACE_NAME,SPACE "SUM_SPACE(M)",SPACE - NVL(FREE_SPACE, 0) "USED_SPACE(M)",ROUND((1 - NVL(FREE_SPACE, 0) / SPACE) * 100, 2) &q…