当前位置: 首页 > news >正文

做销售找客户的网站分类网站 模板

做销售找客户的网站,分类网站 模板,江苏建设管理中心网站,墨刀网站开发原型图教程c编写web服务您可能知道#xff0c;我们可以使用四种主要的Web服务样式。 它们如下#xff1a; 文件/文学 包装的文件/文学 RPC /编码 RPC /文字 当然#xff0c;现在不建议使用RPC /编码样式。 如果您有兴趣#xff0c;可以在此处找到这篇非常全面的文章#xff0c;… c编写web服务 您可能知道我们可以使用四种主要的Web服务样式。 它们如下 文件/文学 包装的文件/文学 RPC /编码 RPC /文字 当然现在不建议使用RPC /编码样式。 如果您有兴趣可以在此处找到这篇非常全面的文章以了解不同的Web服务样式及其优点。 今天我们将看到如何编写一种Web服务的Document / Literal包装器。 该职位的议程如下 根据包装的文档/文字编写一个简单的Web服务 如何在tomcat Web容器上托管简单的Web服务 一个简单的测试客户即可测试我们的服务 因此让我们开始旅程 根据包装的文档/文字编写一个简单的Web服务 package com.wsbindings;import javax.jws.WebMethod; import javax.jws.WebParam; import javax.jws.WebService; import javax.jws.soap.SOAPBinding; import javax.jws.soap.SOAPBinding.ParameterStyle; import javax.jws.soap.SOAPBinding.Style; import javax.jws.soap.SOAPBinding.Use;WebService SOAPBinding(style Style.DOCUMENT, use Use.LITERAL, parameterStyle ParameterStyle.WRAPPED) public interface AddService {WebMethodpublic int addIntegers(WebParam(name intOne) int paramOne,WebParam(name intTwo) int paramTwo); } 这是我们的基本Web服务。 这是我们服务的基本接口。 如您所见我们首先使用 javax.jws.WebService对其进行注释以指示其将要编写的Web服务。 接下来是我们定义SOAPBinding的有趣部分。 在这里我们声明我们要编写一个DOCUMENT风格的Web服务该服务是LITERAL风格并且是WRAPPED风格。 这里要注意的一件事是Soap Binding批注中指定的所有三个属性值都是默认值因此您可以不必在此处明确声明而无需使用它们。 我这样做是为了使本文清晰。 继续让我们看看该特定接口的实现如何 package com.wsbindings;import javax.jws.WebService;WebService(endpointInterfacecom.wsbindings.AddService) public class AddServiceImpl implements AddService{public int addIntegers(int paramOne, int paramTwo) {return paramOneparamTwo;}} 同样此服务的功能也没有什么特别之处。 只需将传入的两个数字相加然后发回相加结果。 请注意在这里我们再次必须使用WebService批注对实现类进行批注。 现在我们已经完成了编写Web服务合同和实现的初始部分让我们看看如何将其托管在tomcat Web容器上。 如何在tomcat Web容器上托管简单的Web服务 如您所知默认情况下tomcat不带有JAX-WS实现这与典型的应用程序服务器例如JBossGlassfish不同。 因此要使其正常工作您需要获得JAX-WS规范的实现。 在这种情况下我们将使用Metro 。 您可以将jar文件从下载文件复制到WEB-INF / lib目录也可以使用Maven为您完成这就是我将在本文中做的。 因此为了获得与Metro实施相关的require jar文件我将以下依赖项添加到pom中 dependencygroupIdcom.sun.xml.ws/groupIdartifactIdjaxws-rt/artifactIdversion2.1.3/versionexclusionsexclusiongroupIdcom.sun.xml.stream/groupIdartifactIdsjsxp/artifactId/exclusion/exclusions/dependency 请注意我在这里为sjsxp工件添加了一个排除项因为我需要的是比从传递依赖中绘制的版本更高的版本。 否则您将获得以下异常。 无法初始化类javax.xml.stream.XMLStreamException编码UTF-8的底层流和writeStartDocument方法utf-8的输入参数不匹配。 为了解决此问题我需要向pom添加以下依赖项 dependencygroupIdcom.sun.xml.stream/groupIdartifactIdsjsxp/artifactIdversion1.0.1/version/dependency 多亏了该线程我才能够找到此解决方案。 继续我们需要定义一个特定的xml文件该文件应位于名为sun-jaxws.xml的WEB-INF目录下 。 该XML指定我们如何访问我们的Web服务以及在何处找到实现类。 让我们看一下该文件的内容 ?xml version1.0 encodingUTF-8? endpoints xmlnshttp://java.sun.com/xml/ns/jax-ws/ri/runtime version2.0endpointnameAddWSimplementationcom.wsbindings.AddServiceImplurl-pattern/addws/ /endpoints 在这里我们提供了Web服务实现类所驻留的包以及有关如何访问特定Web服务的URL模式。 我们要做的最后一件事是将以下内容添加到web.xml中以便成功托管我们的Web服务 listenerlistener-classcom.sun.xml.ws.transport.http.servlet.WSServletContextListener/listener-class/listenerservletservlet-nameAddWS/servlet-nameservlet-classcom.sun.xml.ws.transport.http.servlet.WSServlet/servlet-class/servletservlet-mappingservlet-nameAddWS/servlet-nameurl-pattern/addws/url-pattern/servlet-mapping 注意我们必须定义一个上下文侦听器和一个Servlet类它们将处理我们的Web服务调用。 如果查看WSServletContextListner的源代码则会看到它从WEB-INF目录读取sun-jaxws.xml文件并相应地为Web服务上下文创建类加载器。 关于文档样式Web服务的一件事是您需要为请求和响应生成一些代码。 如果不这样做则会出现以下错误并显示以下消息 您是否运行过APT来生成它们 您可以使用JDK安装随附的wsgen工具生成所需的类。 您还可以使用Apache-CXF为您生成这些类。 我们将通过提供给我们的apache-cxf maven插件来使用后一种方法。 将以下内容添加到您的pom和您的物品中 plugingroupIdorg.apache.cxf/groupIdartifactIdcxf-codegen-plugin/artifactIdversion2.0.9/versiondependenciesdependencygroupIdorg.apache.cxf/groupIdartifactIdcxf-rt-frontend-jaxws/artifactIdversion2.0.9/version/dependency/dependenciesexecutionsexecutionidgenerate-wsdl/idphaseprocess-classes/phaseconfigurationclassNamecom.wsbindings.AddServiceImpl/classNameargline-classdir ${project.build.directory}/classes/argline/configurationgoalsgoaljava2wsdl/goal/goals/execution/executions/plugin 在这里我们使用java2wsdl命令为我们的Web服务生成所需的请求和响应对象。 如您所见我已经使用argline属性指定我希望生成的类进入的位置。 由于在构建war文件时运行的常规maven编译任务将在classes目录中查找因此我也将我们的类指定为包含在同一路径中以便在war时将它们与我们的Web服务类捆绑在一起被建造。 通过浏览此处指定的参数您可以看到所有可能发出的命令。 当我包含我的apache-cxf maven插件时我的pom指示错误 生命周期配置未涵盖插件执行 经过对该问题的研究后我偶然发现了此处所述的解决方案。因此要克服此问题您必须在pom的build标记下包含以下代码段 pluginManagementplugins!--This plugins configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself. --plugingroupIdorg.eclipse.m2e/groupIdartifactIdlifecycle-mapping/artifactIdversion1.0.0/versionconfigurationlifecycleMappingMetadatapluginExecutionspluginExecutionpluginExecutionFiltergroupIdorg.apache.cxf/groupIdartifactIdcxf-codegen-plugin/artifactIdversion2.0.9/versiongoalsgoaltest-compile/goalgoalcompile/goal/goals/pluginExecutionFilteractionexecute //action/pluginExecution/pluginExecutions/lifecycleMappingMetadata/configuration/plugin/plugins/pluginManagement 尽管我不能给您确切的原因来说明为什么出现该警告但是应该为您消除该错误。 如果您知道确切的原因请您为我们所有人的利益发表评论。 之后您只需生成war文件并将其复制到tomcat的webapps目录即可。 然后您将可以通过以下路径访问Web服务 http// localhost8080 / ws-bindings / addws 我将tomcat托管在其上的端口是8080而ws-bindings是我的war文件的名称。 最后让我们看看如何生成服务所需的客户端存根然后编写一个小型客户端来测试我们的Web服务。 一个简单的测试客户即可测试我们的服务 我们将再次使用apache-cxf maven插件通过wsdl2java命令生成客户端存根。 请注意首先我们需要从托管我们的Web服务的路径获取wsdl。 它将位于 http://localhost:8080/ws-bindings/addws?wsdl 然后我将内容复制到单独的xml文件中并将其保存在我创建的用于生成客户端存根的单独的maven项目的资源目录下。 然后您所需要做的就是添加生成pom中的存根所需的配置如下所示 plugingroupIdorg.apache.cxf/groupIdartifactIdcxf-codegen-plugin/artifactIdversion2.0.9/versionexecutionsexecutionidgenerate-sources/idphasegenerate-sources/phaseconfigurationwsdlOptionswsdlOptionwsdl${project.basedir}/src/main/resources/AddService.wsdl/wsdl/wsdlOption/wsdlOptions/configurationgoalsgoalwsdl2java/goal/goals/execution/executions/plugin 这将为您生成测试Web服务所需的存根。 最后让我们编写一个客户端以使用生成的存根访问我们的Web服务。 import java.net.MalformedURLException; import java.net.URL;import javax.xml.namespace.QName; import javax.xml.ws.Service;import com.wsbindings.AddService;public class DocWrapperClient {public static void main(String[] args) throws MalformedURLException {URL wsdlLocation new URL(http://localhost:8080/ws-bindings/addws?wsdl); QName qName new QName(http://wsbindings.com/, AddServiceImplService); Service service null; service Service.create(wsdlLocation, qName); AddService ser service.getPort(AddService.class);System.out.println(ser.addIntegers(1, 1));} } 就是这样我希望您觉得内容有用。 您可以通过从此处下载与服务器相关的maven项目和从此处下载客户端存根生成maven项目来查看示例。 参考 让我们从JCG合作伙伴 Dinuka Arseculeratne的My Journey Through IT博客上编写文档样式的Web服务 。 翻译自: https://www.javacodegeeks.com/2013/04/let-us-write-a-document-style-web-service.htmlc编写web服务
http://www.zqtcl.cn/news/669896/

相关文章:

  • 淮北市相山区建设局网站合肥比较好的网站制作
  • 松岗营销型网站建设公司网站需要服务器吗
  • 图书馆网站信息化建设中国seo第一人
  • 域名网站负责人的责任一键制作单页网站
  • 南宁建设局网站建设有限公司
  • 湛江建设工程交易中心网站企业营销网站建设步骤
  • 网站所有者查询罗湖做网站的公司
  • 网站推广的目标是什么如何提高网站在百度的排名
  • 建设网站基础wordpress 网络图片
  • 深圳网站搜索优化工具义乌公司网站
  • 百度搜索网站带图片sem是什么品牌
  • 百度网盘app下载辽宁seo
  • 一般做网站用什么软件企业管理咨询服务机构
  • 达内培训网站开发金融公司网站 html
  • 珠海网站制作推荐微信营销和微博营销的区别
  • 电影网站如何做5网站建设公司
  • 河南网站优化公司哪家好南山网站设计线
  • 网站构建代码模板番禺网站建设
  • 拟一份饰品网站建设合同网站开发应注意哪些问题
  • 芜湖建站公司做网站的人多吗
  • 网站怎么加二级域名微信授权登录网站退出怎么做
  • 如何把旅行社网站做的好看网站创建方案怎么写
  • 织梦网站图标更换宠物网页设计图片
  • 如何查找网站竞争对手的宣传方式北京网站搭建公司电话
  • 北京正规制作网站公司wordpress 获取图片地址
  • 大学路网站建设推广图片素材
  • wordpress 创建网站搜索引擎优化代理
  • 设计网站用什么软件盈江城乡建设局网站
  • 网站建设模式有哪些内容seo品牌
  • 衡水做网站服务商济南如何挑选网站建设公司