Axis2 WebService(配置发布调用)

合集下载

axis2发布webservice总结wangxz

axis2发布webservice总结wangxz

Axis2发布webservice总结详细例子demo本人测试用的了tomcat 下面能够正常使用在was和WebLogic下面应该是版本不兼容的问题,一直启动失败在was直接部署axis2.war包错误信息用到的jar包axis2-1.5.4-war.zip axis2-1.5.4-bin.zip编写webservice首先下载jar包上面已经有了解压缩bin包目录如下写接口的时候可以一个jar包不需要客户端调用的时候需要用的lib目录下面的所有jar包解压缩war包将axis2.war导入到Eclipse里面找到axis2.xml并修改下面配置修改<parameter name="userName">wangxz</parameter><parameter name="password">123456</parameter>这两个配置是axis2后台管理员的账号和密码用于部署和更新webservice <parameter name="hotdeployment">true</parameter><parameter name="hotupdate">true</parameter>这里个配置是热部署和热更新的意思设置为true<!--~ Licensed to the Apache Software Foundation (ASF) under one ~ or more contributor license agreements. See the NOTICE file ~ distributed with this work for additional information~ regarding copyright ownership. The ASF licenses this file~ to you under the Apache License, Version 2.0 (the~ "License"); you may not use this file except in compliance ~ with the License. You may obtain a copy of the License at~~ /licenses/LICENSE-2.0~~ Unless required by applicable law or agreed to in writing,~ software distributed under the License is distributed on an~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY~ KIND, either express or implied. See the License for the~ specific language governing permissions and limitations~ under the License.--><axisconfig name="AxisJava2.0"><!-- ================================================= --><!-- Parameters --><!-- ================================================= --><parameter name="hotdeployment">true</parameter><parameter name="hotupdate">true</parameter><parameter name="enableMTOM">false</parameter><parameter name="enableSwA">false</parameter><parameter name="EnableChildFirstClassLoading">false</parameter><!--Uncomment if you want to enable file caching for attachments --> <!--parameter name="cacheAttachments">true</parameter><parameter name="attachmentDIR"></parameter><parameter name="sizeThreshold">4000</parameter--><!--Uncomment if you want to plugin your own attachments lifecycle implementation --><!--<attachmentsLifecycleManagerclass="org.apache.axiom.attachments.lifecycle.impl.LifecycleManagerIm pl"/>--><!--Uncomment if you want to enable the reduction of the in-memory cache of WSDL definitions --><!--In some server environments, the available memory heap is limited and can fill up under load --><!--Since in-memory copies of WSDL definitions can be large, some steps can be taken--><!--to reduce the memory needed for the cached WSDL definitions. --> <!--parameter name="reduceWSDLMemoryCache">true</parameter--><!--This will give out the timout of the configuration contexts, inmilliseconds--><parameter name="ConfigContextTimeoutInterval">30000</parameter><!--During a fault, stack trace can be sent with the fault message. The following flag will control --><!--that behavior.--><parametername="sendStacktraceDetailsWithFaults">false</parameter><!--If there aren't any information available to find out the fault reason, we set the message of the exception--><!--as the faultreason/Reason. But when a fault is thrown from a service or some where, it will be --><!--wrapped by different levels. Due to this the initial exception message can be lost. If this flag--><!--is set, then Axis2 tries to get the first exception and set its message as the faultreason/Reason.--><parametername="DrillDownToRootCauseForFaultReason">false</parameter><parameter name="userName">wangxz</parameter><parameter name="password">123456</parameter><!--To override repository/services you need to uncomment following parameter and value SHOULD be absolute file path.--><!--ServicesDirectory only works on the following cases--><!---File based configurator and in that case the value should be a file URL (http:// not allowed)--><!---When creating URL Based configurator with URL file:// --><!--- War based configurator with expanded case , --><!--All the other scenarios it will be ignored.--><!--<parameter name="ServicesDirectory">service</parameter>--><!--To override repository/modules you need to uncomment following parameter and value SHOULD be absolute file path--><!--<parameter name="ModulesDirectory">modules</parameter>--><!--Following params will set the proper context paths for invocations. All the endpoints will have a commons context--><!--root which can configured using the following contextRoot parameter--><!--<parameter name="contextRoot">axis2</parameter>--><!--Our HTTP endpoints can handle both REST and SOAP. Following parameters can be used to distinguiush those endpoints--> <!--In case of a servlet, if you change this you have to manually change the settings of your servlet container to map this --><!--context path to proper Axis2 servlets--><!--<parameter name="servicePath">services</parameter>--><!--<parameter name="restPath">rest</parameter>--><!-- Following parameter will completely disable REST handling in Axis2--><parameter name="disableREST"locked="false">false</parameter><!-- Following parameter will suppress generation of SOAP 1.2 bindings in auto-generated WSDL files --><parameter name="disableSOAP12"locked="true">false</parameter><!--POJO deployer , this will alow users to drop .class file and make that into a service--><deployer extension=".class"directory="pojo" class="org.apache.axis2.deployment.POJODeployer"/><deployer extension=".jar"directory="servicejars"class="org.apache.axis2.jaxws.framework.JAXWSDeployer"/> <deployer extension=".jar"directory="transports"class="org.apache.axis2.deployment.TransportDeployer"/><!--CORBA deployer , this will alow users to invoke remote CORBA services through Axis2--><!--<deployer extension=".xml" directory="corba" class="org.apache.axis2.corba.deployer.CorbaDeployer"/>--><!--<deployer extension=".jsa" directory="rmiservices" class="org.apache.axis2.rmi.deploy.RMIServiceDeployer"/>--><!-- Following parameter will set the host name for the epr--><!--<parameter name="hostname" locked="true"></parameter>--><!-- If you have a front end host which exposes this webservice using a different public URL --><!-- use this parameter to override autodetected url --><!--<parametername="httpFrontendHostUrl">https://someotherhost/context</parameter>--><!--By default, JAXWS services are created by reading annotations. WSDL and schema are generated--><!--using a separate WSDL generator only when ?wsdl is called. Therefore, even if you engage--><!--policies etc.. to AxisService, it doesn't appear in the WSDL. By setting the following property--><!--to true, you can create the AxisService using the generated WSDL and remove the need for a--><!--WSDL generator. When ?wsdl is called, WSDL is generated in the normal way.--><parameter name="useGeneratedWSDLinJAXWS">false</parameter><!-- The way of adding listener to the system--><!-- <listener class="org.apache.axis2.ObserverIMPL">--><!-- <parameter name="RSS_URL">http://127.0.0.1/rss</parameter>--><!-- </listener>--><threadContextMigrators><threadContextMigratorlistId="JAXWS-ThreadContextMigrator-List"class="org.apache.axis2.jaxws.addressing.migrator.EndpointContextMapM igrator"/></threadContextMigrators><!-- ================================================= --><!-- Message Receivers --><!-- ================================================= --><!--This is the default MessageReceiver for the system , if you want to have MessageReceivers for --><!--all the other MEP implement it and add the correct entry to here , so that you can refer from--><!--any operation --><!--Note : You can override this for a particular service by adding the same element with your requirement--><messageReceivers><messageReceiver mep="/2004/08/wsdl/in-only"class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/> <messageReceiver mep="/2004/08/wsdl/in-out"class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/><messageReceiver mep="/2006/01/wsdl/in-only"class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/> <messageReceiver mep="/2006/01/wsdl/in-out"class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/> <messageReceiver mep="/ns/wsdl/in-only"class="org.apache.axis2.receivers.RawXMLINOnlyMessageReceiver"/> <messageReceiver mep="/ns/wsdl/in-out"class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/> </messageReceivers><!-- ================================================= --><!-- Message Formatter --><!-- ================================================= --><!--Following content type to message formatter mapping can be used to implement support for different message --><!--format serialization in Axis2. These message formats are expected to be resolved based on the content type. --><messageFormatters><messageFormattercontentType="application/x-www-form-urlencoded"class="org.apache.axis2.transport.http.XFormURLEncodedFormatter"/> <messageFormatter contentType="multipart/form-data"class="org.apache.axis2.transport.http.MultipartFormDataFormatter"/> <messageFormatter contentType="application/xml"class="org.apache.axis2.transport.http.ApplicationXMLFormatter"/> <messageFormatter contentType="text/xml"class="org.apache.axis2.transport.http.SOAPMessageFormatter"/> <messageFormatter contentType="application/soap+xml"class="org.apache.axis2.transport.http.SOAPMessageFormatter"/> </messageFormatters><!-- ================================================= --><!-- Message Builders --><!-- ================================================= --><!--Following content type to builder mapping can be used to implementsupport for different message --><!--formats in Axis2. These message formats are expected to be resolved based on the content type. --><messageBuilders><messageBuilder contentType="application/xml"class="org.apache.axis2.builder.ApplicationXMLBuilder"/><messageBuilder contentType="application/x-www-form-urlencoded"class="org.apache.axis2.builder.XFormURLEncodedBuilder"/><messageBuilder contentType="multipart/form-data"class="org.apache.axis2.builder.MultipartFormDataBuilder"/> </messageBuilders><!-- ================================================= --><!-- Transport Ins --><!-- ================================================= --><!-- The default configuration assumes that AxisServlet only receives requeststhrough HTTP. To allow HTTPS as well, configure a second AxisServletListenerwith name="https" and specify the port parameter on both receivers.For more information, please have a look at the servlet transport documentation:/axis2/java/core/docs/servlet-transport.html--><transportReceiver name="http"class="org.apache.axis2.transport.http.AxisServletListener"/><!--Uncomment if you want to have TCP transport support--><!--transportReceiver name="tcp"class="org.apache.axis2.transport.tcp.TCPServer"><parameter name="port">6060</parameter-->><!--If you want to give your own host address for EPR generation--> <!--uncomment the following paramter , and set it as you required.--> <!--<parameter name="hostname">tcp:///ws</parameter>--> <!-- /transportReceiver --><!-- ================================================= --><!-- Transport Outs --><!-- ================================================= --><!--Uncomment if you want to have TCP transport support--><!--<transportSender name="tcp"class="org.apache.axis2.transport.tcp.TCPTransportSender"/>--><transportSender name="local"class="org.apache.axis2.transport.local.LocalTransportSender"/> <transportSender name="http"class="monsHTTPTransportSender"> <parameter name="PROTOCOL">HTTP/1.1</parameter><parameter name="Transfer-Encoding">chunked</parameter><!-- If following is set to 'true', optional action part of the Content-Type will not be added to the SOAP 1.2 messages --><!-- <parameter name="OmitSOAP12Action">true</parameter> --> </transportSender><transportSender name="https"class="monsHTTPTransportSender"> <parameter name="PROTOCOL">HTTP/1.1</parameter><parameter name="Transfer-Encoding">chunked</parameter> </transportSender><!-- Please enable this if you need the java transport --><!-- <transportSender name="java"class="org.apache.axis2.transport.java.JavaTransportSender"/> --><!-- ================================================= --><!-- Global Modules --><!-- ================================================= --><!-- Comment this to disable Addressing --><module ref="addressing"/><!--Configuring module , providing parameters for modules whether they refer or not--><!--<moduleConfig name="addressing">--><!--<parameter name="addressingPara">N/A</parameter>--><!--</moduleConfig>--><!-- ================================================= --><!-- Clustering --><!-- ================================================= --><!--To enable clustering for this node, set the value of "enable" attribute of the "clustering"element to "true". The initialization of a node in the cluster is handled by the classcorresponding to the "class" attribute of the "clustering" element. It is also responsible forgetting this node to join the cluster.--><clusteringclass="org.apache.axis2.clustering.tribes.TribesClusteringAgent"enable="false"><!--This parameter indicates whether the cluster has to be automatically initalizedwhen the AxisConfiguration is built. If set to "true" the initialization will not bedone at that stage, and some other party will have to explictly initialize the cluster.--><parameter name="AvoidInitiation">true</parameter><!--The membership scheme used in this setup. The only values supported at the moment are"multicast" and "wka"1. multicast - membership is automatically discovered using multicasting2. wka - Well-Known Address based multicasting. Membership is discovered with the helpof one or more nodes running at a Well-Known Address. New members joining acluster will first connect to a well-known node, register with the well-known nodeand get the membership list from it. When new members join, one of the well-knownnodes will notify the others in the group. When a member leaves the cluster oris deemed to have left the cluster, it will be detected by the Group MembershipService (GMS) using a TCP ping mechanism.--><parameter name="membershipScheme">multicast</parameter><!--The clustering domain/group. Nodes in the same group will belong to the same multicastdomain. There will not be interference between nodes in different groups.--><parameter name="domain">wso2.carbon.domain</parameter><!--When a Web service request is received, and processed, before the response is sent to theclient, should we update the states of all members in the cluster? If the value ofthis parameter is set to "true", the response to the client will be sent only afterall the members have been updated. Obviously, this can be time consuming. In some cases,such this overhead may not be acceptable, in which case the value of this parametershould be set to "false"--><parameter name="synchronizeAll">true</parameter><!--The maximum number of times we need to retry to send a message to a particular nodebefore giving up and considering that node to be faulty--><parameter name="maxRetries">10</parameter><!-- The multicast address to be used --><parameter name="mcastAddress">228.0.0.4</parameter><!-- The multicast port to be used --><parameter name="mcastPort">45564</parameter><!-- The frequency of sending membership multicast messages (in ms) --><parameter name="mcastFrequency">500</parameter><!-- The time interval within which if a member does not respond, the member will bedeemed to have left the group (in ms)--><parameter name="memberDropTime">3000</parameter><!--The IP address of the network interface to which the multicasting has to be bound to.Multicasting would be done using this interface.--><parameter name="mcastBindAddress">127.0.0.1</parameter><!-- The host name or IP address of this member --><parameter name="localMemberHost">127.0.0.1</parameter><!--The TCP port used by this member. This is the port through which other nodes willcontact this member--><parameter name="localMemberPort">4000</parameter><!--Preserve message ordering. This will be done according to sender order.--><parameter name="preserveMessageOrder">true</parameter><!--Maintain atmost-once message processing semantics--><parameter name="atmostOnceMessageSemantics">true</parameter><!--Properties specific to this member--><parameter name="properties"><property name="backendServerURL" value="https://${hostName}:${httpsPort}/services/"/><property name="mgtConsoleURL" value="https://${hostName}:${httpsPort}/"/></parameter><!--The list of static or well-known members. These entries will only be valid if the"membershipScheme" above is set to "wka"--><members><member><hostName>127.0.0.1</hostName><port>4000</port></member><member><hostName>127.0.0.1</hostName><port>4001</port></member></members><!--Enable the groupManagement entry if you need to run this node as a cluster manager.Multiple application domains with different GroupManagementAgent implementationscan be defined in this section.--><groupManagement enable="false"><applicationDomain name="apache.axis2.application.domain"description="Axis2 group"agent="org.apache.axis2.clustering.management.DefaultGroupManagementA gent"/></groupManagement><!--This interface is responsible for handling management of a specific node in the clusterThe "enable" attribute indicates whether Node management has been enabled--><nodeManagerclass="org.apache.axis2.clustering.management.DefaultNodeManager"enable="true"/><!--This interface is responsible for handling state replication. The property changes inthe Axis2 context hierarchy in this node, are propagated to all other nodes in the cluster.The "excludes" patterns can be used to specify the prefixes (e.g. local_*) orsuffixes (e.g. *_local) of the properties to be excluded from replication. The pattern"*" indicates that all properties in a particular context should not be replicated.The "enable" attribute indicates whether context replication has been enabled--><stateManagerclass="org.apache.axis2.clustering.state.DefaultStateManager"enable="true"><replication><defaults><exclude name="local_*"/><exclude name="LOCAL_*"/></defaults><contextclass="org.apache.axis2.context.ConfigurationContext"><exclude name="local_*"/></context><contextclass="org.apache.axis2.context.ServiceGroupContext"><exclude name="local_*"/></context><contextclass="org.apache.axis2.context.ServiceContext"><exclude name="local_*"/></context></replication></stateManager></clustering><!-- ================================================= --><!-- Phases --><!-- ================================================= --><phaseOrder type="InFlow"><!-- System predefined phases --><phase name="Transport"><handler name="RequestURIBasedDispatcher"class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"><order phase="Transport"/></handler><handler name="SOAPActionBasedDispatcher"class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"><order phase="Transport"/></handler></phase><phase name="Addressing"><handler name="AddressingBasedDispatcher"class="org.apache.axis2.dispatchers.AddressingBasedDispatcher"><order phase="Addressing"/></handler></phase><phase name="Security"/><phase name="PreDispatch"/><phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase"><handler name="RequestURIBasedDispatcher"class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/> <handler name="SOAPActionBasedDispatcher"class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/> <handler name="RequestURIOperationDispatcher"class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/> <handler name="SOAPMessageBodyBasedDispatcher"class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/> <handler name="HTTPLocationBasedDispatcher"class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/> <handler name="GenericProviderDispatcher"class="org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher"/ ><handler name="MustUnderstandValidationDispatcher"class="org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDis patcher"/></phase><phase name="RMPhase"/><!-- System predefined phases --><!-- After Postdispatch phase module author or service author can add any phase he want --><phase name="OperationInPhase"><handler name="MustUnderstandChecker"class="org.apache.axis2.jaxws.dispatchers.MustUnderstandChecker"><order phase="OperationInPhase"/></handler></phase><phase name="soapmonitorPhase"/></phaseOrder><phaseOrder type="OutFlow"><!-- user can add his own phases to this area --><phase name="soapmonitorPhase"/><phase name="OperationOutPhase"/><!--system predefined phase--><!--these phase will run irrespective of the service--><phase name="RMPhase"/><phase name="PolicyDetermination"/><phase name="MessageOut"/><phase name="Security"/></phaseOrder><phaseOrder type="InFaultFlow"><phase name="Addressing"><handler name="AddressingBasedDispatcher"class="org.apache.axis2.dispatchers.AddressingBasedDispatcher"><order phase="Addressing"/></handler></phase><phase name="Security"/><phase name="PreDispatch"/><phase name="Dispatch" class="org.apache.axis2.engine.DispatchPhase"><handler name="RequestURIBasedDispatcher"class="org.apache.axis2.dispatchers.RequestURIBasedDispatcher"/><handler name="SOAPActionBasedDispatcher"class="org.apache.axis2.dispatchers.SOAPActionBasedDispatcher"/> <handler name="RequestURIOperationDispatcher"class="org.apache.axis2.dispatchers.RequestURIOperationDispatcher"/> <handler name="SOAPMessageBodyBasedDispatcher"class="org.apache.axis2.dispatchers.SOAPMessageBodyBasedDispatcher"/> <handler name="HTTPLocationBasedDispatcher"class="org.apache.axis2.dispatchers.HTTPLocationBasedDispatcher"/> <handler name="GenericProviderDispatcher"class="org.apache.axis2.jaxws.dispatchers.GenericProviderDispatcher"/ ><handler name="MustUnderstandValidationDispatcher"class="org.apache.axis2.jaxws.dispatchers.MustUnderstandValidationDis patcher"/></phase><phase name="RMPhase"/><!-- user can add his own phases to this area --><phase name="OperationInFaultPhase"/><phase name="soapmonitorPhase"/></phaseOrder><phaseOrder type="OutFaultFlow"><!-- user can add his own phases to this area --><phase name="soapmonitorPhase"/><phase name="OperationOutFaultPhase"/><phase name="RMPhase"/><phase name="PolicyDetermination"/><phase name="MessageOut"/><phase name="Security"/></phaseOrder></axisconfig>。

axis2之webservice新手超详细教程

axis2之webservice新手超详细教程

A XIS2之WEBSERVICE新手超详细教程---------------尚明Axis2是一套崭新的WebService引擎,该版本是对Axis1.x重新设计的产物。

Axis2不仅支持SOAP1.1和SOAP1.2,还集成了非常流行的REST WebService,同时还支持Spring、JSON 等技术,本教程是主要阐述如何构建一个基本的Axis2 webservice应用,里面的许多环节高手可直接略过,本教程完全针对新手。

一、环境安装安装myeclipse下载地址::///file/4238159/48030981-6b56-40a4-a93b-8f424ee4f33a安装mysql下载地址::///file/4238159/de64cf2f-4217-4e11-bb98-8e6c5dd24155安装mysql-workbench(mysql可视化工具)下载地址::///file/4238159/becf913f-56a6-4d68-b248-134113b73535安装tomcat下载地址::///file/4238159/ec6a2250-99ff-464e-a978-be184c96e4e7下载Axis2服务包下载地址::///file/4238159/bb3db6e3-2f7d-4343-b472-c1fa714dba95下载Axis2开发插件包下载地址::///file/4238159/aa39505f-079b-43be-9479-15a2d3e98cbb安装jdk下载地址::///file/4238159/7ba342f9-277f-4b9c-b5e7-b0c5b7dfc151二、环境配置1)Java环境配置a)设置JAVA_HOME图1.图2设置JAVA_HOME=D:\Program Files\Java\jdk1.6.0_10* D:\Program Files\Java\jdk1.6.0_10为笔者本机的JDK安装目录,请开发者根据实际安装路径来填写,注意环境变量最后面不能加分号,D:\Program Files\Java\jdk1.6.0_10;这么写是错误的。

Axis2与sap的webservice调用接口指南

Axis2与sap的webservice调用接口指南

Axis2与sap的webservice调用接口指南1、设置环境变量AXIS2_HOME = D:\JAVA\axis2\axis2-1.6.22、下载工具:(1.6.2生成的代理类存在BUG,建议用1.5.1版本)Eclipse:/downloads/Tomcat:/Axis:/axis2/java/core/download.cgiaxis2-war:/axis2/java/core/tools/index.htmlaxis2-eclipse-codegen-plugin:/axis2/java/core/tools/index.htmlaxis2-eclipse-service-plugin:/axis2/java/core/tools/index.html安装JDK不用多说了吧。

3、安装Eclipse插件:axis2-eclipse-codegen-plugin和axis2-eclipse-service-plugin是Eclipse的插件,分别解压在Eclipse的根目录就可以了。

注意:Axis2 1.6.2有个BUG,需要添加两个额外的Jar放在eclipse\dropins目录下:org.apache.axis2.eclipse.codegen.plugin_0.0.0.SNAPSHOT.jarorg.apache.axis2.eclipse.service.plugin_0.0.0.SNAPSHOT.jar下载地址:https:///content/groups/snapshots/org/apache/axis2/axis2.eclipse.serv ice.plugin/SNAPSHOT/https:///content/groups/snapshots/org/apache/axis2/axis2.eclipse.cod egen.plugin/SNAPSHOT/4、在SAP端发布Webservice(之前我写过相关文档,发布Web服务的细节这里就不在赘述了)5、得到WSDL文件的地址,并保存为本地文件以wsdl作为文件扩展名http://r3ids01:8000/sap/bc/srt/wsdl/bndg_534F90D9B51D4480E10080000A3F001C/wsdl1 1/allinone/ws_policy/document?sap-client=8006、在eclispe 的package Explorer 中点击右键,在菜单中选择新建--->other--->Axis2 CodeGenerator7、点击next,进入下一个页面,选择从wsdl文件来产生java文件。

webservice四种发布方式及客户端调用

webservice四种发布方式及客户端调用

WebService 四种发布方式总结Author:yczhang1.CXF方式CXF与spring搭建webservice是目前最流行的方式,但是传闻cxf与jdk1.5有些不兼容,我没有遇到过,我遇到的问题是cxf与was6.1.1不兼容,表现在cxf必须的jar包“wsdl4j-1.6.2.jar”报错,报的错为:ng.IncompatibleClassChangeError,明显的jar包不兼容问题,很是头痛,后来查找资料找到解决办法是,将上述jar包新建一个was共享库,可以解决,但是客户周经理不想用此种方式,因为需要修改was,于是改用了axis2方式,下文会介绍。

该问题在此处做个记录,以后使用cxf与was的时候需要注意!!!使用cxf+spring搭建WebService:第一步,添加jar包。

此处需要注意,不同环境(tomcat、was)jar也不一定相同,例如我本地cxf+spring只需要如下jar包:而泰康的was环境则需要如下jar包:明显的多了很多,原因应该是服务器jar包池的不同。

根据错误提示缺什么补什么就可以了,注意jar包勿重复。

第二步,配置web.xml文件,如下(重要的地方已标记):<context-param><param-name>contextConfigLocation</param-name><param-value>classpath:/applicationContext.xml</param-value> </context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener </listener-class></listener><!-- Character Encoding filter --><filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFil ter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><servlet><servlet-name>CXFServlet</servlet-name><servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-c lass><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>CXFServlet</servlet-name><url-pattern>/webservice/*</url-pattern></servlet-mapping>上述标记的地方,第一处是spring配置文件路径;第二出是wsdl地址内容;第三步,编写接口类与实现类,注意注解接口类@WebServicepublic interface SendService {public boolean sendOA(@WebParam(name="param")String param);public boolean sendOrg(OrgEntity org);}实现类@WebService(endpointInterface="com.service.SendService",serviceName=" sendService")public class SendServiceImpl implements SendService{public boolean sendOA(String param) {System.out.println("-------sendOA---------param:"+param);if(param.equals("zhoujian")){return true;}return false;}public boolean sendOrg(OrgEntity org) {System.out.println("-------sendOrg--begin-------");return true;}}第四步,Spring配置文件“jaxws:client”该标签可以不必写,访问时可以手动拼接该url 第五步,发布,直接部署到服务器,访问:2.Xfire方式据说xfire方式已经很老了,但个人感觉,xfire方式很简单且容易配置,不知为啥过时了,也没感觉cxf、axis2哪里先进,我当时卡在cxf与was搞不定时想尝试xfire方式被周经理给拒绝了。

axis2 WebService 开发指南

axis2 WebService 开发指南

Axis2.x WebService上次介绍了axis1.x的用法,这次继续上次的,将叙述axis2的用法。

Axis1.x在线博文:/hoojo/archive/2010/12/20/1911349.html一、准备工作1、开发准备首先需要下载axis2的相关jar包,到axis的官方网站即可获得开发的依赖包。

下载地址:/axis2/java/core/download.cgi现在最高的版本是1.5.4的然后你需要下载官方提供的axis的eclipse插件工具,可以帮助我们打包(aar)及其生产客户端调用代码。

下载页面:/axis2/java/core/tools/index.htmlService Archive Wizard - Eclipse Plug-inCode Generator Wizard - Eclipse Plug-in2、安装eclipse插件如果你的eclipse插件安装成功后,会看到如下效果:3、分析axis2-bin文件目录结构下载下来的axis2的依赖库,其中有一个axis2-1.5.3-bin.zip的库文件,目录结构如下:bin文件夹是axis2的常用工具,其中有将wsdl文件转换成客户端调用的wsdl2java工具及将java转换成wsdl文件的工具conf是axis2的配置文件lib运行所要的依赖库repository是发布过的axis服务和文件sample是示例webapp是web文件和jsp页面等4、我们需要将下载下来的axis2-1.5.3-war.zip中的axis2.war这个文件放在我们的tomcat目录下,启动tomcat就会把war文件转成一个可以跑起来的axis2的项目。

Tomcat启动后,在浏览器中输入:http://localhost:8080/axis2/你可以看到二、Axis2的简单WebService示例注意,上面的HelloWorldService是没有package的。

axis2 webservice入门手册(JS,Java,PHP调用实例源码)思途科技出品

axis2 webservice入门手册(JS,Java,PHP调用实例源码)思途科技出品

思途科技,网络营销专家

思途科技 让有需求的客户找到你
<messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/> </operation> </service> 二、项目打包并发布 1.可使用你熟悉的 IDE 进行打包成 HelloWorld.aar 参考直接打包方式: 在命令符行境下,将当前目录切换到该项目包下。如博主的例子就需要切换到 sample 所在 的文件夹,注意并非切换进 sample。使用如下命令:jar cvf HelloWorld.aar . 完成在当前 目录生成 HelloWorld.aar 。请注意命令末尾的点“.”。 2.发布,使用前面提到的登录 axis2 后看到的 Upload Service 工具 将 HelloWorld.arr 部署到 Tomc 上。 3.发布测试,如博主例子访问 http://localhost:8088/axis2/services/HelloWorld?wsdl 查看第 2 步骤中部署的 HelloWrold 的描述文件。 如果有报错,则需根据错误信息检查上述步骤。如果没有错误信息,那么 HelloWorld 的 service 端就算完成了。 三、简单客户端调用 1.一个简单的 Java 调用客户端。 参考代码: package example.client; import org.apache.axiom.om.OMAbstractFactory; import org.apache.axiom.om.OMElement; import org.apache.axiom.om.OMFactory; import org.apache.axiom.om.OMNamespace; import org.apache.axis2.addressing.EndpointReference; import org.apache.axis2.client.Options; import org.apache.axis2.client.ServiceClient; public class TestClient {

axis2发布服务(WebService)和生成客户端(Client)

axis2发布服务(WebService)和生成客户端(Client)

一、准备工作1.下载axis2相关jar包目前最新版本为 1.6.2;将axis2-1.6.2-bin.rar,axis2-1.6.2-war.zip一并下载下来,下载地址:/axis2/java/core/download.cgi2.下载axis2插件:axis2-eclipse-codegen-plugin-1.6.2.zip、axis2-eclipse-serv ice-plugin-1.6.2.zip,下载地址:/axis2/jav a/core/tools/index.html3安装Eclipse插件,安装成功如下图:5.新建Web Project(axis2_Serv ice)将axis2-1.6.2-bin\lib下的jar拷贝到axis2_Serv ice\lib下,打开axis2-1.6.2-war.zip\axis2\WEB-INF下的conf、modules、services 解压到项目(axis2_Serv ice)WebRoot\WEB-INF下6.修改web.xml文件,添加如下代码:7.添加两个类:bean类和服务类Bean类:package .zjl.entity;import java.io.Serializable;public class User implements Serializable{/****/private static final long serialVersionUID = 1L;private int id;private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}}要发布的服务类:package .zjl.service;import er;public class UserService {public User getUser(User user) {System.out.println("service:"+user.getId());System.out.println("service:"+user.getName());User po2 = new User();po2.setId(1);po2.setName("zjl");return po2;}}8.Axis2插件工具生成aar文件,发布WebService在项目上右击->new->other选择Axis2 Serv ice Archiv er,点击nextClass File Location选择工程路径下的classes文件,点击Next勾选Skip WSDL项,点击next这里没有jar文件,所以默认,点击Next勾选Generate the serv ice xml automatically项,点击NextServ ice Name 随便写记住就行,Class name包名点类名称点击Load会出现这个类下的所有方法名称,点击NextOutput location选择输出文件位置(具体位置根据具体而定),点击Finsh说明成功。

axis2发布WebService(应用.aar文件发布)

axis2发布WebService(应用.aar文件发布)

axis2发布WebService(应用.aar文件发布)
基于Axis2开发Web Service一般采用两种方法:
第一种方法直接实现业务逻辑,它通常包括提供服务实现类(implementation class)、编写服务描述文件services.xml、将服务实现类和描述文件打成aar (Axis ARchive) 包、部署服务四个步骤;
第二种方法使用WSDL2Java Tool工具,通过WSDL生成代码框架(Skeleton),然后再在框架中填写业务逻辑。

两种方法的具体的过程可以参考Axis2用户手册。

简单说下一下第一种方法的实现,主要分享下个人的经验.首先编写POJO类(即WebService服务类,如hello.java类),然后将其编译成.class文件,然后编写基于服务的services.xml文件,建立类似的目录结构:
D:/ws/hello/hello.class 与D:/ws/META-INF/services.xml,然后在cmd命令行下面,转到d:/ds目录下面,输入jar cvf ws.aar .(最后一个"."不要忘记哦),拷贝ws.aar文件到%TOMCAT_HOME%/axis2/web-inf/services中,启动Tomcat 即可发布我们的服务,发布方法同POJO类类似.
该方法的好处在与灵活性高,因为可以将服务封装在包中,而在POJO中不能封装在包,导致其灵活性较差(但部署发布简单,只需要将服务类对应的.Java文件改成.class文件放在%TOMCAT_HOME%\axis2\WEB-INF/pojo中即可以发布服务)。

.aar文件的难点在于services.xml文件的编写,需要xml,axis2方面的知识积累。

Webservice-使用Axis发布调用服务

Webservice-使用Axis发布调用服务

注意:本案例是基于Axis Webservice框架进行的!Axis框架来自 Apache 开放源代码组织,它是基于JAVA语言的最新的 SOAP 规范的开放源代码实现,它为java应用服务器提供了标准的webservice能力。

一、 webservice简介webservice 的概念是使用一个标准的输出接口来定义代码提供的功能,以便让外界可以通过这个标准的输出接口来调用,而所谓的标准输出接口就是wsdl。

通过webservice,可以实现不同系统间的交互功能,比如,我们可以在esp里调用vsb里的站点数据与功能,甚至可以操作CS 架构的系统。

服务端1、新建一个web工程,将Axis相关Jar包拷贝到lib目录中,Jar包如下图。

2、新建服务端类Server.java,编写第一个方法sayHello(String name)3、在web.xml中添加如下代码<servlet><servlet-name>AxisServlet</servlet-name><servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class> </servlet><servlet><servlet-name>AdminServlet</servlet-name><servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class><load-on-startup>100</load-on-startup></servlet><servlet-mapping><servlet-name>AxisServlet</servlet-name><url-pattern>/servlet/AxisServlet</url-pattern></servlet-mapping><servlet-mapping><servlet-name>AxisServlet</servlet-name><url-pattern>*.jws</url-pattern></servlet-mapping><servlet-mapping><servlet-name>AxisServlet</servlet-name><url-pattern>/services/*</url-pattern></servlet-mapping><!-- webservice监听器--><listener><listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener</listener-class> </listener><!-- Mime设定--><mime-mapping><extension>wsdl</extension><mime-type>text/xml</mime-type></mime-mapping><mime-mapping><extension>xsd</extension><mime-type>text/xml</mime-type></mime-mapping>5、在WEB-INF下增加server-config.wsdd文件每部署一个新的WEB服务时,都需要将新服务的描述信息加入到server-config.wsdd中。

Apache Axis2配置及使用

Apache Axis2配置及使用

使用Apache Axis2创建Web Service1、环境搭建●下载并安装jdk1.6●下载并安装tomcat6.0●下载并安装eclipse-jee-indigo●下载并解压apache axis2-1.5.22、Eclipse环境配置●设置jdk : Preferences —> Java —> Installed JRES●设置tomcat : Preferences —> Server —> Runtime Enviroments●设置Axis2 Runtime: Preferences —> Web Services —> Axis2Preferences —> Axis2 Runtime 指定为apache axis2的根路径●Preferences —> Web Services —> Server and Runtime 设置Web services runtime为Apache Axis23、简单web service示例开发(server)●打开server视图,添加tomcat服务器●设置HTTP/1.1的端口为:8089●创建Dynamic Web Project,修改configuration,选中Axis2 Web Services即可。

●新建一个class Caculate,进行加法和减法运算。

●选中Caculate类右键新建一个web service,根据向导一步一步完成即可。

如下图所示:选中publish the web service和monitor the web service点击start server,启动tomcat服务器点击finish,整个web service创建及部署成功。

测试:http://localhost:8089/WS_02/services/Caculate?wsdl 打开web service explorer,选择WSDL page,输入WSDL URL,如下图所示:测试结果:4、总结:开发过程中容易出现的问题:Failed while installing Axis2 Web Services Core 1.1出现上述问题的原因:eclipse的Bug,更换eclipse版本即可解决问题。

使用axis2创建并发布webservice.

使用axis2创建并发布webservice.
点击查看服务的WSDL文件
点击查看已部署的服务
练习1
部署服务MyService,服务代码为MyService.java 依次访问服务的update方法和echo方法
练习2
部署服务WeatherService,服务类文件为 WeatherService.java
依次访问服务的setWeather方法和getWeather 方法
编写服务代码
服务代码
package samples.quickstart.service.pojo; import java.util.HashMap;
public class StockQuoteService { private HashMap map = new HashMap();//存储(symbol,price)值对 //按照symbol取price
存放部署描述文件的META-INF文件夹
和包名对应的文件夹结构,最底层放编译 后的class文件
文件夹可以直接部署,也可以打包成*.aar部署,部署位置为: tomcat目录\webapps\axis2\WEB-INF\services
启动tomcat
浏览器中输入地址http://localhost:8080/axis2
Axis2应用将充当SOAP服务器,监听SOAP消息,转 发给相应的服务。
创建和部署webservice的方式
Code-first approach: 先写服务代码,再部署服
务(手工编写WSDL或者使用工具生成WSDL)
POJO(Plain Old Java Objects)方式 AXIOM方式
使用Axis2创建和部署web服务
使用Axis2部署服务—环境准备

Tomcat配置https安全访问的Axis2 Webservice给java和C#调用

Tomcat配置https安全访问的Axis2 Webservice给java和C#调用

一.前期准备。

1. 如何编写Axis2 Webservice服务这里就不说了,有需要的可以参考本人百度文库的另一篇文档:/view/aafc47e5580216fc710afd58.html2. 下载axis2-1.7.1-war.zip(其他版本亦可),解压得到axis2.war,放到Tomcat的webapps 目录下,启动tomcat,会自动生成axis2文件夹。

3. 把写好代码的axis2程序包(本例是AxisServer.aar)放到axis2的services目录下,启动Tomcat(即启动Axis2服务)二.生成https访问的SSL安全证书等文件1.随便在一个文件夹下,新建一个server和一个client的空文件夹。

并新建一个keytools.bat 的批处理,编辑批处理的内容如下(红色方块部分需按自己的实际情况填写):set SERVER_DN="CN=127.0.0.1, OU=SPH, O=SPH, L=sh, S=sh, C=CN"set CLIENT_DN="CN=Client, OU=SPH, O=SPH, L=sh, S=sh, C=CN"set PASS_SET= 123456keytool -genkey -v -alias server -keyalg RSA -keystore C:/ZipOut/server/server.keystore -dname %SERVER_DN% -validity 3650 -storepass %PASS_SET% -keypass %PASS_SET%keytool -genkey -v -alias client -keyalg RSA -storetype PKCS12 -keystore C:/ZipOut/client/client.p12 -dname %CLIENT_DN% -validity 3650 -storepass client -keypass clientkeytool -export -alias client -keystore C:/ZipOut/client/client.p12 -storetype PKCS12 -storepass client -rfc -file C:/ZipOut/client/client.cerkeytool -import -alias client -v -file C:/ZipOut/client/client.cer -keystore C:/ZipOut/server/server.keystore -storepass %PASS_SET%keytool -export -alias server -keystore C:/ZipOut/server/server.keystore -storepass %PASS_SET% -rfc -file C:/ZipOut/server/server.cerkeytool -import -file C:/ZipOut/server/server.cer -storepass %PASS_SET% -keystore C:/ZipOut/client/client.truststore -alias server -nopromptpause2.双击批处理文件,即会在server和client目录下生成需要的证书等文件。

快速上手指南 - 基于Eclipse Axis2 插件的Web Service开发[最新]【优秀】

快速上手指南 - 基于Eclipse Axis2 插件的Web Service开发[最新]【优秀】

快速上手指南 - 基于Eclipse Axis2 插件的Web Service开发[最新]【优秀】(文档可以直接使用,也可根据实际需要修订后使用,可编辑推荐下载)axis2创建web service(一)axis2 是新一代的web service开发工具,它会让你的web service开发变得轻松,快捷。

下面让我们以一个实际的例子来体验一下。

首先,工欲善其事,必先利其器。

就让我们先做好一些必备的准备工作吧。

1.下载axis2 的2进制的包和war,现在的最新版本是发布时间是2021-8-25地址分别是:2.把下载后的war放入tomcat的webapps目录里,然后启动tomcat,这样war包就会自动解压为目录axis2在浏览器中输入 ://localhost:8080/axis2/,如果一切正常你会看到下面的画面3,就开始准备一下axis2的eclispe的插件了。

axis2的eclispe插件分为2个,一个是帮助我们生成aar文件的,另一个是帮我们用wsdl文件生成stub代码的。

下载地址是下载完2个压缩文件后,可以直接把解压后的文件拷贝到plugins目录中,也可以在links目录中写文件路径的方式来安装插件,安装完插件后,打开eclipse,在package explorer 中点击右键--->选择new---->other如果安装正确你会看到这样准备工作就都做好了。

接下来就是正式开发了。

axis2创建web service(二)工具都已经准备齐全了。

我们来动手做一个小例子来小试牛刀!这一节我们先利用axis2来发布一个web service 的服务,然后在下一节我们做一客户端来调用这个服务。

我们的服务很简单的,就是输入一个字符串,然后打印出一段字符串。

代码很简单,主要是测试用。

Java代码1.2.3.public class SimpleServer {4.5. /**6. * 简单的测试方法7. *8. */9. public String simpleMethod(String name) {10. return name + "Say this is a Simple method ^-^";11. }12.13.}主要的过程就是如何利用axis2的eclispe插件来发布这个服务啦。

Eclipse配置 Axis2并开发一个简单的webservice程序

Eclipse配置 Axis2并开发一个简单的webservice程序

一.在Eclipse中配置Axis2插件。

1.下载Axis2插件(Axis2官网:/axis2/java/core/download.html)2. 配置Eclipse Axis2插件把axis2-eclipse-codegen-plugin-1.7.1.zip和axis2-eclipse-service-plugin-1.7.1.zip文件里面的jar文件解压出来,放到eclipse目录下的dropins文件夹下,并新建一个txt文件,写入dropins目录的绝对路径,保存后更改文件格式为.link。

重启Eclipse,然后点击File-> New->Other->Axis2 Wizards即可看到axis2功能是否配置成功。

二.用Eclipse开发Axis2服务端1.解压axis2-1.7.1-bin.zip和axis2-1.7.1-war.zip文件,axis2-1.7.1-bin的解压文件夹随便放在一个目录下即可,axis2-1.7.1-war解压后的axis2.war文件放在tomcat目录的webapp文件夹下。

启动tomcat并输入http://localhost:8080/axis2即可看到如下画面。

2.新建Java Project,目录如下图所示(该示例主要展示了如何把配置文件也打包进aar文件),把axis2-1.7.1-bin的lib目录下的全部.jar文件(其实这些包是给客户端使用的,而且只需要其中一部分即可,为了方便才全部复制)全部复制到lib目录下,然后build path进项目中,建立如下文件:com.axis.server包下的文件AxisServer.java和User.java;resources 包下的文件application.properties。

3.生成aar文件:File->New->Other->Axis2 Wizards->Axis2 Service Archiver,并按下图流程进行即可生成aar文件。

axis2发布服务(WebService)和生成客户端(Client)

axis2发布服务(WebService)和生成客户端(Client)

一、准备工作1.下载axis2相关jar包目前最新版本为 1.6.2;将axis2-1.6.2-bin.rar,axis2-1.6.2-war.zip一并下载下来,下载地址:/axis2/java/core/download.cgi2.下载axis2插件:axis2-eclipse-codegen-plugin-1.6.2.zip、axis2-eclipse-serv ice-plugin-1.6.2.zip,下载地址:/axis2/jav a/core/tools/index.html3安装Eclipse插件,安装成功如下图:5.新建Web Project(axis2_Serv ice)将axis2-1.6.2-bin\lib下的jar拷贝到axis2_Serv ice\lib下,打开axis2-1.6.2-war.zip\axis2\WEB-INF下的conf、modules、services 解压到项目(axis2_Serv ice)WebRoot\WEB-INF下6.修改web.xml文件,添加如下代码:7.添加两个类:bean类和服务类Bean类:package .zjl.entity;import java.io.Serializable;public class User implements Serializable{/****/private static final long serialVersionUID = 1L;private int id;private String name;public int getId() {return id;}public void setId(int id) {this.id = id;}public String getName() {return name;}public void setName(String name) { = name;}}要发布的服务类:package .zjl.service;import er;public class UserService {public User getUser(User user) {System.out.println("service:"+user.getId());System.out.println("service:"+user.getName());User po2 = new User();po2.setId(1);po2.setName("zjl");return po2;}}8.Axis2插件工具生成aar文件,发布WebService在项目上右击->new->other选择Axis2 Serv ice Archiv er,点击nextClass File Location选择工程路径下的classes文件,点击Next勾选Skip WSDL项,点击next这里没有jar文件,所以默认,点击Next勾选Generate the serv ice xml automatically项,点击NextServ ice Name 随便写记住就行,Class name包名点类名称点击Load会出现这个类下的所有方法名称,点击NextOutput location选择输出文件位置(具体位置根据具体而定),点击Finsh说明成功。

axis2创建webservice操作手册范本

axis2创建webservice操作手册范本

搭建WebService操作手册2010-10-25修订记录1.引言 (4)1.1 目的 (4)1.2 为什么要使用WebService (4)1.3 什么是WebService (4)1.4 WebService WSDL SOAP关系 (5)1.5 Web Service服务器工作流程 (5)1.6 Web Service客户端工作流程 (6)2.系统所需环境 (6)3.构建WebService服务器 (6)3.1 使用AXIS2构建WebService服务器 (6)3.1.1 POJO方式 (6)3.1.2 使用框架构建webservice (11)3.1.3 使用独立安装模式 (20)4. 构建WebService客户端 (21)4.1.1 使用插件创建WebService客户端 (21)1.引言1.1 目的本操作手册具体介绍了WebService的工作原理并详细描述了使用axis2构建WebService的流程,主要面向刚刚接触WebService的开发人员。

1.2 为什么要使用WebServiceWebService是一个新的概念,它并不是微软首先提出的,但是微软的dotnet战略让它最广泛的发挥它的潜能。

也许它流行的根本原因并不是微软,也许是因为带宽与存储量的飞速发展,但是dotnet战略确实起到了很大的作用,令它能够在更加广泛的开发平台上施展。

dotnet战略领导着微软前进,微软为了dotnet计划也花费了近300亿美元。

为什么?因为微软要它的理念、方式不但在单机软件,甚至在Internet上也被最广泛的认同。

WebService 最早被应用在Sun等对网络先知先觉的平台上,并且在苦苦的期待发展。

而J2EE是最早的成功开发WebService的平台,它的理念就是在网上最广泛的传播、使用,成为一种真正的服务。

当微软的dotnet计划即将实施的时候,微软也开始发掘WebService的潜力。

Axis2 webservice 发布教程 ,整合到自己的项目中

Axis2 webservice 发布教程 ,整合到自己的项目中

Web Project项目整合Axis2网上的教程全都是生成了.aar文件后,复制到axis2\WEB-INF\services\下面,这样给人的感觉就是自己的服务还得靠Axis2.war包才能运行,这不扯蛋吗?这里教大家把Webservice 发布到自己的项目中。

1.下载Axis2.war ,复制web-inf/services目录到自己的项目WEB-INF下,2.打开Myeclipse 新建一个web Project复制Axis2.war 包下的所有JAR包到项目lib目录下。

3.在项目的WEB.XML 中添加如下配置<!-- Axis2配置--><servlet><servlet-name>AxisServlet</servlet-name><servlet-class>org.apache.axis2.transport.http.AxisServlet</servlet-class><load-on-startup>1</load-on-startup></servlet><servlet><servlet-name>AxisAdminServlet</servlet-name><servlet-class>org.apache.axis2.webapp.AxisAdminServlet</servlet-class></servlet><servlet-mapping><servlet-name>AxisServlet</servlet-name><url-pattern>/servlet/AxisServlet</url-pattern></servlet-mapping><servlet-mapping><servlet-name>AxisServlet</servlet-name><url-pattern>*.jws</url-pattern></servlet-mapping><servlet-mapping><servlet-name>AxisServlet</servlet-name><url-pattern>/services/*</url-pattern></servlet-mapping><servlet-mapping><servlet-name>AxisAdminServlet</servlet-name><url-pattern>/axis2-admin/*</url-pattern></servlet-mapping><mime-mapping><extension>inc</extension><mime-type>text/plain</mime-type> </mime-mapping>4.编写Webservice 服务端类5.发布服务右击-新建-other点击下一步这里选择编译后的Class目录,工作空间下的项目编译目录,点击下一步。

用Axis2开发Web Service及客户端

用Axis2开发Web Service及客户端

用Axis2开发Web Service及客户端在《使用Eclipse的Axis1.4插件开发Web Service及客户端》介绍的Axis是用的Axis1.x,而Axis2是改进版本,进行了重新的设计,应该是Axis的第二代,本文介绍Axis2的使用方法。

/axis2/是Axis2的主页,写这篇文章的时候最新版本是1.5,从/axis2/download/1_5/download.cgi下载axis2-1.5-bin.zip、axis2-1.5-war.zip。

axis2-1.5-war.zip是web发布版本,可以在网页上进行Web Service的动态部署,提供Web Service服务。

解压缩后把axis2.war放到tomcat的webapps下面,启动tomcat,在网页中输入http://localhost:8080/axis2(取决于tomcat的设置)就可以进行操作了。

这方面的资料很多,就不详细介绍了。

下面介绍使用Eclipse插件开发的方法,环境与《使用Eclipse的Axis1.4插件开发Web Service及客户端》的相同。

启动Eclipse后,首先设置Axis2的主目录,需要先解压缩axis2-1.5-bin.zip,然后把解压缩之后的路径填入Eclipse的Window|Preferences|Web Services|Axis2 Preferences的界面上,如下图所示:图1在Eclipse中设置Axis2的runtime建立一个简单的类:package demo.axis; public class User{public String sayHello(String userName){return "hello " + userName;}}把这个类发布为Web Service的步骤与《使用Eclipse 的Axis1.4插件开发Web Service及客户端》中的相同,只是要注意选择Axis2,生成之后的目录结构是:图2生成Web Service后的目录结构但生成之后的项目中缺少.jar文件,可以把%AXIS2-HOME%/lib下的所有文件复制到项目的WEB-INF/lib下面,部署到tomcat就可以运行了,在浏览器中输入http://localhost:8080/Axis2ServerDemo/services/User?wsd l就可以看到发布的Web Service的wsdl了。

axis2_WebService_开发手册

axis2_WebService_开发手册

Axis2 WebServiceAxis的简单准备Axis的入门实例Axis复杂对象类型的WebServiceAxis的辅助工具发布、调用WebServiceAxis WebService会话Session的管理Axis用控制台Dos命令发布WebServiceAxis跨多个WebService管理SessionAxis用Spring的JavaBean发布WebServiceAxis异步调用WebServiceAxis 的Module模块Axis使用SoapMonitar监视WebService的请求和响应信息一、准备工作1、开发准备首先需要下载axis2的相关jar包,到axis的官方网站即可获得开发的依赖包。

下载地址:/axis2/java/core/download.cgi现在最高的版本是1.5.4的然后你需要下载官方提供的axis的eclipse插件工具,可以帮助我们打包(aar)及其生产客户端调用代码。

下载页面:/axis2/java/core/tools/index.htmlService Archive Wizard - Eclipse Plug-inCode Generator Wizard - Eclipse Plug-in2、安装eclipse插件如果你的eclipse插件安装成功后,会看到如下效果:3、分析axis2-bin文件目录结构下载下来的axis2的依赖库,其中有一个axis2-1.5.3-bin.zip的库文件,目录结构如下:bin文件夹是axis2的常用工具,其中有将wsdl文件转换成客户端调用的wsdl2java工具及将java转换成wsdl文件的工具conf是axis2的配置文件lib运行所要的依赖库repository是发布过的axis服务和文件sample是示例webapp是web文件和jsp页面等4、我们需要将下载下来的axis2-1.5.3-war.zip中的axis2.war这个文件放在我们的tomcat目录下,启动tomcat就会把war文件转成一个可以跑起来的axis2的项目。

利用axis2将SSH项目发布成Web Service

利用axis2将SSH项目发布成Web Service

利用axis2将SSH项目发布成Web Service1. 开发环境eclipse,axis2 war,SSH项目axis2 的eclipse插件:axis2-eclipse-codegen-wizard. 用于生成stub本地代码axis2-eclipse-service-archiver-wizard.zip 用于发布webservice2. 安装过程1.下载完2个插件的文件后,可以挺直把后的文件拷贝到eclipse 的 plugins名目中从axis2 bin 包里找到:backport-util-courrent-3.1.jar 和geronimo-stax-api_1.0_spec-1.0.1.jar 复制到eclipse\plugins\Axis2_Codegen_Wizard_1.3.0\lib 文件夹下。

backport-util-concurrent-3.1.jar 需要在网上downloadsite:/jar/mule/dependencies/maven2/backport -util-concurrent/backport-util-concurrent/3.1/backport-util-c oncurrent-3.1.jar.html 2.修改eclipse\plugins\Axis2_Codegen_Wizard_1.3.0\plugin.xml 文件在 run 內加入下面的字串 libraryname="lib/geronimo-stax-api_1.0_spec-1.0.1.jar" = "appliionContext"class="org.apache.axis2.extensions.spring.receivers.ApplicationCo ntextHolder" / 2.在axis2容器里的web.xml加入如下代码,用于加载spring的配置文件,用于初始化bean listenerlistener-classorg.springframework.web.context.ContextLoaderListener/listener-class /listener context-param param-name contextConfigLocation /param-name param-value/WEB-INF/applicationContext.xml /param-value/context-param 3.名目结构:toat/axis2/WEB-INF 项目的配置文件都放在这里修改配置文件里的一些内容:主要是加载路径相关,eg: bean id="sessionFactory"第1页共2页。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Axis2 WebService(配置、发布、调用)(2012-10-07 02:48:32)转载▼分类:工作标签:it准备工作1、下载:axis2-1.5.4-bin.zip,axis2-1.5.4-war.zip 下载地址:/axis2/java/core/2、环境变量设置AXIS2_HOME E:\research\axis2-1.5.4-bin\axis2-1.5.4JAVA_HOME C:\Program Files\Java\jdk1.6.0_213、axis2-1.5.4-war.zip解压,将压缩包内的axis2.war部署到%TOMCAT-HOME%/webapps下,启动tomcat,访问http://localhost:8085/axis2/看是否正常。

点击Service会进入Service列表页面,当前只有一个Version服务。

http://localhost:8085/axis2/services/Version?wsdl4、下载axis2-eclipse-codegen-plugin-1.5.4.zip,axis2-eclipse-service-plugin-1.5.4.zip 解压后将plugins 复制到�LIPSE_HOME%\plugins。

/dyn/mirrors/mirrors.cgi/axis/axis2/java/core/1.5.4/axis2-eclipse-code gen-plugin-1.5.4.zip/dyn/mirrors/mirrors.cgi/axis/axis2/java/core/1.5.4/axis2-eclipse-servi ce-plugin-1.5.4.zip安装完插件后,IDE中选择new->other会看到下面界面如果安装Axis2插件之后,在eclipse中没有出现界面,就换一个eclipse版本在版本比较新的eclipse中,安装Axis插件,是把jar复制到�LIPSE_HOME%\dropins目录下,而不是plugins目录AXIS2发布Web Services一、工程文件1、新建Axis2Service1 java工程。

2、新建\Axis2Service1\src\ws\TestWs.javapackage ws;public class TestWs {public String showName(String name) {return name; }public String getName() {return "Axis2Service Sample"; }}二、arr部署方式1、手动打包新建\Axis2Service1\deploy文件夹,将\Axis2Service1\bin下的class文件复制过来。

新建\Axis2Service1\deploy\META-INF\services.xml文件AxisServicews.TestWsclass="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />生成aar包\Axis2Service1\deploy>jar cvf AxisService.aar . (注意带.号)2、插件打包IDE中选择New->other->Axis2 Service Archiver,点击Next;Class File Location:选择Axis2Service1\bin目录,点击Next;勾选Skip WSDL,点击Next;Service Archiver 选择jar位置,如果没有jar包就直接点击Next;勾选Generate the service xml automatically 自动生成XML file文件,点击Nextservice name,输入:AxisService,然后在class name 中填写要发布的类(全路径),点击load。

勾选Search declared methods only。

点击nextoutput File location,输入:D:\ ; output File Name,输入artiver文件的名称AxisService。

点击finish。

提示Service Archvie generated successfully! 注册表明,生成成功。

3、发布AxisServiceAxisService.aar复制到%TOMCAT-HOME%/webapps/axis2/WEB-INF/services下。

(不打aar 包,\Axis2Service1\deploy下面复制过去也是可以)打开http://localhost:8085/axis2/services/listServices看到三、独立部署1、新建java web project工程。

2、文件复制%TOMCAT-HOME%\webapps\axis2\WEB-INF\lib 复制到\Axis2Service2\WebRoot\WEB-INF\lib 下,并加入工程引用。

%TOMCAT-HOME%\webapps\axis2\WEB-INF\conf 复制到\Axis2Service2\WebRoot\WEB-INF\conf%TOMCAT-HOME%\webapps\axis2\WEB-INF\modules 复制到\Axis2Service2\WebRoot\WEB-INF\modules3、web.xml 代码如下/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"xsi:schemaLocation="/xml/ns/j2ee /xml/ns/j2ee/web-app_2_4.xsd">AxisServletorg.apache.axis2.transport.http.AxisServlet1AxisServlet/services/*2、新建\Axis2Service2\src\ws\TestWs.javapackage ws;public class TestWs {public String showName(String name) {return name; }public String getName() {return "Axis2Service Sample"; }}3、新建\Axis2Service2\WebRoot\WEB-INF\services目录。

4、新建一个AxisService服务AxisService\META-INF\services.xmlAxisServicews.TestWsclass="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />启动tomcat后,访问http://localhost:8085/Axis2Service2/services/AxisService?wsdl看是否正常。

AXIS2调用Web Services一、客户端stub文件生成1、脚本生成方式去AXIS2的解压目录下bin(%AXIS2_HOME%\bin\)下执行下面语句wsdl2java -uri http://localhost:8085/Axis2Service2/services/AxisService?wsdl -p ws -s -o stub -p参数指定了生成的Java类的包名-o参数指定了生成的一系列文件保存的根目录在stub\src\ws自动生成AxisServiceStub.java2、插件生成方式IDE中选择New->other->Axis2 Code Generator,点击Next;勾选Generate Java source code from a WSDL file,点击Next;WSDL file location,输入:http://localhost:8085/Axis2Service2/services/AxisService?wsdl,点击Next;如果路径不对会提示:Specified WSDL is invalid!, Please select a validated *.wsdl/*.xml file on previous page.正确的话界面如下,点击next;指定输入路径,点击Next提示:All operations completed successfully! 生成成功。

在D:\src\ws 自动生成了stub一系列文件,其中ws是包名。

上面2种方式生成的stub类有点不一样,脚本生成方式是单一文件,插件生成方式生成的一系列文件。

二、客户端调用脚本生成方式为例子,插件生成的类似。

1、新建java工程Axis2Client新建\Axis2Client\lib文件夹将%AXIS2_HOME%\lib\ 下的jar包复制到\Axis2Client\lib,并加入工程引用中将通过脚本生成的单一AxisServiceStub.java文件加入到src\ws下2、新建test.TestWs.java 主要代码如下//初始化Sub类AxisServiceStub stub = new AxisServiceStub();//传递AxisServiceStub.ShowName对象,相关参数在这边赋值。

AxisServiceStub.ShowName command = new AxisServiceStub.ShowName(); command.setName("Hello!");//取得返回值String name = stub.showName(command).get_return();System.out.println(name);调用成功后控制台输出:Hello!上面代码展示了如何从webservice中调用方法。

相关文档
最新文档