axis2 webservice入门手册(JS,Java,PHP调用实例源码)思途科技出品
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与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文件。
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的WSDL2JAVA工具来生成客户端代码
1.为eclipse安装Axis2插件,将我提供的Axis2_Codegen_Wizard_1.4.0文件夹放到MyEclipse 6.0\eclipse\plugins 下,如果是其他版本的Eclipse则需要下载相应插件(注意:要将myeclipse关闭后重新打开才能生效)2.我的示例创建了一个名为axisClient的Web项目。
3.然后在src上New—Other。
可以看到我们配置的Axis2插件已经成功了。
然后选择Axis2 Wizards下的Axis2 Code Generator,Next。
5. /WebServices/WeatherWS.asmx?wsdl是一个提供免费天气预报服务的网络WSDL文件。
我们先打开该网页,将其中的内容另存为WSDL文件(保存的时候以.WSDL结尾)。
6.选择要生成java源文件的wsdl文件的位置。
如下图:7.选择默认即可,当然也可以自己配置,比如自己设置客户端生成应用文件的包。
8.为要生成的文件选择存放的地点。
我们将他放在我们项目的src目录下,然后Finish。
9、刷新我们的axisClient项目,右键——refresh。
然后可以看到,我们的src目录下生成了,build.xml和src.custom包,包下面有两个文件:WeatherWebServiceCallbackHandler.Java和WeatherWebServiceStub.java。
我们自己将这两个文件调整到custom下。
package custom;import java.rmi.RemoteException;import org.apache.axis2.AxisFault;import custom.WeatherWebServiceStub.GetWeatherbyCityName;import custom.WeatherWebServiceStub.GetWeatherbyCityNameResponse;public class ClientTest {public static void main(String[] args) throws RemoteException {//客户端访问类WeatherWebServiceStub wwss=new WeatherWebServiceStub();/** 因为查询天气的城市参数是GetWeatherbyCityName对象,* 所以需要实例,然后设置要查询天气的城市*/GetWeatherbyCityName gwcn=new GetWeatherbyCityName();gwcn.setTheCityName("西安");/** 查询天气* 返回GetWeatherbyCityNameResponse对象* 该对象的getGetWeatherbyCityNameResult().getString()可以返回一个包含天气信息的数组* 循环数组,输出信息*/GetWeatherbyCityNameResponse gwcnr=wwss.getWeatherbyCityName(gwcn);for(String s:gwcnr.getGetWeatherbyCityNameResult().getString()){System.out.println(s);}新版本代码如下:。
java web service接口的调用方法
Java Web Service 接口的调用方法一、配置 axis在 Java 项目中配置 Web Service 服务的第一步是使用 axis 来配置服务器。
axis 是 Web Service 服务器的驱动程序,它负责将Web Service 发布到网络上,并提供调用 Web Service 接口的服务。
在 axis 中配置服务器很简单,只需要在服务器配置文件中添加如下内容:```axis2.xml:``````<axis2><transports><transport name="http" /></transports><services><service name="MyService"><endpoint name="httpEndpoint"address="http://localhost:8080/axis2/services/MyService" /> </service></services></axis2>```上述配置中,需要将“http”改为实际的 Web Service 接口地址,例如“http://localhost:8080/axis2/services/MyService”。
此外,需要将“httpEndpoint”设置为 Web Service 接口的实际地址。
二、在项目中配置 axis在配置 axis 之后,需要在 Java 项目中使用 axis 来加载 Web Service 接口。
在 Java 项目中配置 axis 的方法有多种,其中一种方法是使用 axis 的 servlet 来加载 Web Service 接口。
1.创建 web 项目 testWebService,将 axis 那个源文件中/axis-src-14/axis-14/lib 下的几个主要的包 (就是第一步中那个配置中提到的那个几个包),拷贝到这个项目的webRoot/WEB-INF/lib 下。
使用axis2构建WebService服务
使用axis2构建WebService服务以下文档将介绍是使用Tomcat6.0和Apache Axis2开发、部署和测试一个简单的WebService服务。
本文示例为最简单数据类型。
下一章将介绍复杂数据类型的传输。
WebService让一个程序可以透明地调用互联网程序,不管具体的实现细节。
只要WebService公开了服务接口,远程客户端就可以调用服务。
WebService是基于http协议的组建服务,WebService是分散式应用程序的发展趋势。
1.工作环境MyEclipse6.0.1 + JDK1.6 + Axis2-1.3其中Axis2-1.3需要下载Binary Distribution和WAR这两个文件。
目前Axis2的最高版本已到达1.5.2.安装Axis2将下载的Axis2-1.3 W AR文件解压缩,得到axis2.war文件。
将其拷贝到%Tomcat安装目录%webapps下即可。
3.检验安装启动(或重新启动)Tomcat,在地址栏中输入:http://localhost:8080/axis2点击Validate,显示Axis2 Happiness Page4.WebService中的服务器端(1)新建Java工程(2)新建服务器类,建立Hello.javapackage cn.hxyh.webservice;public class Hello {public String getHello() {System.out.println("Hello Service received");return"Hello world!" ;}}(3)在./bin下建立META-INF目录,新建service.xml文件<service name="Hello"><Description>helloword example description</Description><parameter name="ServiceClass"locked="false">cn.hxyh.webservice.Hello</parameter><operation name="getHello"><messageReceiverclass="org.apache.axis2.rpc.receivers.RPCMessageReceiver" /></operation></service>(4)打包生成aar文件在命令符环境下,将目录转到./bin。
Axis2(WebService)培训资料1
Axis2 / Webservice
概念解释
1、XML XML是Soap的基础,使用XML来描述数据,作为短 期的临时数据处理的方式。之所以使用XML是因为它的 独立于编程语言,良好的可扩展性。 2、SOAP SOAP是XML文档形式的调用商业方法的规范。当 商业用户通过UDDI找到你的WSDL描述文档后,通过 Simple Object Access Protocol (SOAP)可以调用你建立 的Web服务中的一个或多个操作,通常使用HTTP POST方法来传送到一个HTTP 服务器。
Axis2 的安装
安装axis之前,必须保证系统正确安装了WEB服务器, Tomcat和其他应用服务器都可以,例如:weblogic。
Axis2 / Webservice
Axis2 的安装
1、下载Axis2 官方网址:/axis2/ 下载axis2-1.5-war.zip,发布webservice所用。 下载axis2-1.5-bin.zip,包含开发webservice所需的JAR。 下载axis2-1.5-docs.zip,包含Axis2 的相关文档和例子。 2、安装Axis2 解压缩axis2-1.5-war.zip,把axis2.war放在% Tomcat_Home%\webapps文件夹下即完成 axis2安装。
Axis2 / Webservice
使用web service 的场合
3、软件和数据的重用 使用Web Service,只需要直接调用远端的Web Service, 再也不必像以前那样,先从第三方购买、安装软件,再从应 用程序中调用服务。既可以在应用程序中使用第三方的Web Service 提供的功能,也可以把自己的应用程序功能通过 Web Service 提供给别人使用,达成软件和数据的重用。 什么时候不适合用webservice? 1、单机应用程序 对于只供个人使用的应用程序,只需要与运行在本机上 的其他程序通讯。在这种情况下最好不用webservice,只 要用本地的API就可以。使用webservice 不仅消耗大,而 且不会带来任何好处。
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目录下生成需要的证书等文件。
通向架构师的道路(第十天)之Axis2-Web-Service(一)
一、Axis2简介1.1 介绍Axis2Axis框架来自Apache 开放源代码组织,它是基于JAVA语言的最新的SOAP 规范(SOAP 1.2)和SOAP withAttachments 规范(来自Apache Group )的开放源代码实现。
有很多流行的开发工具都使用AXIS作为其实现支持Web服务的功能,例如JBuilder以及著名的Eclipse J2EE插件Lomboz。
AXIS的最新版本可以从/axis/index.html下载。
下载下来后直接解压即可用了。
下图是AXIS核心引擎的体系结构图:整个AXIS项目包括以下几个部分:ü消息流子系统消息流子系统提供了灵活的消息传递框架,这个消息传递框架包括处理程序、链、序列化程序和反序列化程序。
处理程序是一个处理请求、响应和故障流的对象。
处理程序可被组合在一起成为链,而且可以使用一个灵活的部署描述符来配置这些处理程序的顺序。
ü传输框架子系统提供了一个传输框架,这个传输框架可以帮助您创建自己的可插式传输发送器和传输侦听器。
ü数据编码子系统AXIS完全按照XML Schema 规范提供各种数据类型的自动序列化,并且提供功能扩展接口来使用您自己定制的序列化器和反序列化器。
ü其他AXIS完全支持WSDL 以及日志记录、出错以及故障处理机制。
它同时提供一些工具用来讲WSDL文档转换成客户端的调用框架以及根据类来产生WSDL定义文档。
AXIS目前版本支持的标准是:W3C SOAP1.1 和1.2;WSDL 1.1;SAAJ 1.1(SUN公司:SOAP with Attachments API for Java);JAX-RPC(SUN公司:Java APIfor XML-Based RPC)1.0。
1.2 开发项目中如何选择使用Axis2和其它的WebService²如果你的应用程序需要支持多语言即有C++, .net, Java,你应该选择Axis2。
axis2新手教程实例
Axix2 webservice 开发教程例子简单易懂,很适合初学者。
开发环境:jdk1.6 tomcate5.0 Myeclipse5.0步骤:1.下载axis2所用包axis2-1.4.1-bin.zip 和axis2-1.4.1-war.zip并解压下载地址:/axis2/2.解压axis2-1.4.1-war.zip 将axis2.war 放到%TOME_HOME%\webapps中.启动Tomcate. IE地址输入:http://localhost:<port>/axis2/ .出现以上表示环境搭建成功。
3.下面开始开发自己的axis2 ws:创建web项目:我的项目工程名为axis2demo;将axis2-1.4.1\lib下所有jar导入。
创建一个HelloWorld.java在META-INF下建一个service.xml文件。
<?xml version="1.0" encoding="UTF-8"?><service><parameter name="ServiceClass" locked="false">com.xwx.demo.HelloWorld<poeration name="sayHello"><messageReceiverclass="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/> </poeration></parameter></service>注:关于service.xml的参数配置自己baidu+google4.就开始准备一下axis2的eclispe的插件了。
axis2的eclispe插件分为2个,一个是帮助我们生成aar文件的,另一个是帮我们用wsdl文件生成stub代码的。
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介绍和例子
---------------------------------------------------------------最新资料推荐------------------------------------------------------Axis2介绍和例子前言 Axis2 是目前比较流行的 WebService 引擎。
WebService 被应用在很多不同的场景。
例如,可以使用 WebService 来发布服务端 Java 类的方法,以便使用不同的客户端进行调用。
这样可以有效地集成多种不同的技术来完成应用系统。
WebService 还经常被使用在 SOA 中,用于 SOA 各个部分交换数据。
本课程重点讲解了 Axis2 的核心功能,并提供了三个项目以使学员理解并掌握如何将 Axis2 应用于不同的场景。
本课程站在初学者角度介绍了 Axis2 的大多数常用的功能。
例如,以多种方式编写和发布 WebService、 JAX-RPC、JAX-WS、复杂类型传输、 WebService 会话管理、 Axis2 模块等。
本课程共分为两部分,其中第一部分为 Axis2 基础知识讲解。
在这部分介绍了前面所述的 Axis2 知识。
第二部分介绍了三个小的项目。
这三个项目的功能类似。
所不同的是,它们使用了不同的技术来实现。
第一个项目使用 Java Swing 技术实现了个人信息管理(PI M)系统,这个系统可以对个人信息(如姓名、职位、电话等)进行增、删、改、查。
1 / 3在这些操作中,涉及到了如何使用 WebService 来传输和下载图像文件、传输查询结果(Resultset 对象)等技术难点。
第二个项目使用 Struts 2.1 .6(目前 Struts 2的最新版, 2009 年 1 月发布)来实现 PI M。
功能与第一个 PI M 类似。
只是这个系统为 Web 版。
在这个项目中学员可以学习到如果将 WebService 应用在Web 程序中。
axis WebService - 开发指南
Axis1.x一、搭建简单的axis web服务1、在官方网站下载axis的工程(这个等下就有用的)和源码、jar包等,下载地址是:/apache-mirror//ws/axis/1_4/2、解压下载的工程或源码(两个中任意一个都可以),解压axis-bin-1.4可以看到大致目录是这样的:docs是文档、lib是jar包、sample是示例、xmls是当前工程所需的xml、webapps是当前工程的webroot目录;我们打开webapps目录就可以看到一个axis的文件夹,这个文件夹里面有WEB-INF文件夹和一些页面,将axis复制到你的tomcat的webapps目录下。
然后启动tomcat服务,访问http://localhost:8080/axis/,看到下面的解码就说明部署成功了:以后我们将和这个工程不离不弃,它将在我们的axis1.x的webService中发挥很大的作用!3、创建我们自己的web工程,这里我新建的AxisWebService;创建好工程后,将刚才解压的axis-bin中的lib的jar包copy到当前工程的lib中;axis-ant.jaraxis.jarcommons-discovery-0.2.jarcommons-logging-1.0.4.jarjaxrpc.jarlog4j-1.2.8.jarsaaj.jarwsdl4j-1.5.1.jaractivation-1.1.jarmail-1.4.jar创建webService类文件,代码如下:4、复制HelloWorldService.java到我们刚才复制的axis文件夹下即可;也就是tomcat 下的webapps下的axis下即可;注意:还有重要的一般就是要将这个java文件中的包名去掉,并且将这个文件重命名为HelloWorldService.jws;如果带包名的话,请求后编译的class将会在包路径下,这样我们在全球当前jws的时候就会出现找不到class,详细的你可以到发布在tomcat下的工程看看WEB-INF目录下的jwsClass就一目了然了。
用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.
return translatorString;
}
练习
阅读WeatherWS-2.xml,调用服务的getWeatherbyCityName操作 阅读WeatherWS-1.xml ,调用服务的getWeather操作 阅读ValidateCodeWebService.xml,调用cnValidateByte操作
</TranslatorStringResult> </TranslatorStringResponse> </Body >
public class Translation { public static void main(String[] args) { try { ServiceClient client = new ServiceClient(); // 创建ServiceClient对象 // 创建Option对象,该对象包含服务的属性,如地址,soapAction,传输协议等 Options opts = new Options(); // 设置目标服务地址 opts.setTo(new EndpointReference( " /webservices/EnglishChinese.asmx")); // 设置操作的soapAction值 opts.setAction("/TranslatorString"); // 指定soap版本,默认是1.1,这里指定为1.2 opts.setSoapVersionURI(Constants.URI_SOAP12_ENV); client.setOptions(opts); // 为ServiceClient设置option // 发送请求并得到返回结果,请求和响应均是一个OMElement对象 OMElement res = client.sendReceive(createPayLoad()); //输出返回结果,如有进一步需求,只要对返回结果的xml做解析即可 System.out.println(res); } catch (AxisFault e) { e.printStackTrace(); } }
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的项目。
java webservice axis2简单开发实例
Web Service学习之axis看着网上的资料学习了一下,做点笔记以防以后忘记。
一、准备工作:到axis官方网站下载相应的jar包,我下的是1.4final版。
/axis/二、建立项目:直接在MyEclipse中建立了一个web项目。
将相应的jar包拷贝到lib文件夹下三、创建一个WebService服务直接创建一个类HelloClient.javaJava代码1.package com;2.3.public class HelloServer {4. public String sayHello(String name) {5. return "Hello " + name;6. }7.}axis支持两种方式创建,一种是将编写好的java文件改为*.jws文件。
个人觉得这样不好,所以就用另外一种,采用在server-config.xml文件中配置的方式。
注意:该文件位置为WEB-INF目录下Xml代码1.<?xml version="1.0"encoding="UTF-8"?>2.<deployment xmlns="/axis/wsdd/"3.xmlns:java="/axis/wsdd/providers/java">4.<globalConfiguration>5.<parameter name="adminPassword"value="admin"/>6.<parameter name="enableNamespacePrefixOptimization"7.value="false"/>8.<parameter name="dotNetSoapEncFix"value="true"/>9.<parameter name="disablePrettyXML"value="true"/>10. <parameter name="sendMultiRefs"value="true"/>11. <parameter name="sendXsiTypes"value="true"/>12. <parameter name="attachments.implementation"13. value="org.apache.axis.attachments.AttachmentsImpl"/>14. <parameter name="sendXMLDeclaration"value="true"/>15.16. <requestFlow>17. <handler type="java:org.apache.axis.handlers.JWSHandler">18. <parameter name="scope"value="session"/>19. </handler>20. <handler type="java:org.apache.axis.handlers.JWSHandler">21. <parameter name="scope"value="request"/>22. <parameter name="extension"value=".jwr"/>23. </handler>24. </requestFlow>25. </globalConfiguration>26.27. <handler name="LocalResponder"28. type="java:org.apache.axis.transport.local.LocalResponder"/>29. <handler name="URLMapper"30. type="java:org.apache.axis.handlers.http.URLMapper"/>31. <handler name="Authenticate"32. type="java:org.apache.axis.handlers.SimpleAuthenticationHandler"/>33.34. <service name="AdminService"provider="java:MSG">35. <parameter name="allowedMethods"value="AdminService"/>36. <parameter name="enableRemoteAdmin"value="false"/>37. <parameter name="className"value="org.apache.axis.utils.Admin"/>38. <namespace>/axis/wsdd/</namespace>39. </service>40.41. <service name="Version"provider="java:RPC">42. <parameter name="allowedMethods"value="getVersion"/>43. <parameter name="className"value="org.apache.axis.Version"/>44. </service>45. <SPAN style="COLOR: #ff0000"><service name="HelloServer"provider="java:RPC">46. <parameter name="allowedMethods"value="*"/>47. <parameter name="className"value="com.HelloServer"/>48. </service></SPAN>49.50. <transport name="http">51. <requestFlow>52. <handler type="URLMapper"/>53. <handler54. type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>55. </requestFlow>56. <parameter name="qs:list"57. value="org.apache.axis.transport.http.QSListHandler"/>58. <parameter name="qs:wsdl"59. value="org.apache.axis.transport.http.QSWSDLHandler"/>60. <parameter name="qs:method"61. value="org.apache.axis.transport.http.QSMethodHandler"/>62. </transport>63.64. <transport name="local">65. <responseFlow>66. <handler type="LocalResponder"/>67. </responseFlow>68. </transport>69.</deployment>web.xml文件中的配置如下Xml代码1.<?xml version="1.0"encoding="UTF-8"?>2.<web-app version="2.5"xmlns="/xml/ns/javaee"3.xmlns:xsi="/2001/XMLSchema-instance"4.xsi:schemaLocation="/xml/ns/javaee5. /xml/ns/javaee/web-app_2_5.xsd">6.<listener>7.<listener-class>8. org.apache.axis.transport.http.AxisHTTPSessionListener9.</listener-class>10. </listener>11.12. <servlet>13. <servlet-name>AxisServlet</servlet-name>14. <display-name>Apache-Axis Servlet</display-name>15. <servlet-class>16. org.apache.axis.transport.http.AxisServlet17. </servlet-class>18. </servlet>19.20. <servlet>21. <servlet-name>AdminServlet</servlet-name>22. <display-name>Axis Admin Servlet</display-name>23. <servlet-class>24. org.apache.axis.transport.http.AdminServlet25. </servlet-class>26. <load-on-startup>100</load-on-startup>27. </servlet>28.29. <servlet>30. <servlet-name>SOAPMonitorService</servlet-name>31. <display-name>SOAPMonitorService</display-name>32. <servlet-class>33. org.apache.axis.monitor.SOAPMonitorService34. </servlet-class>35. <init-param>36. <param-name>SOAPMonitorPort</param-name>37. <param-value>5001</param-value>38. </init-param>39. <load-on-startup>100</load-on-startup>40. </servlet>41.42. <servlet-mapping>43. <servlet-name>AxisServlet</servlet-name>44. <url-pattern>/servlet/AxisServlet</url-pattern>45. </servlet-mapping>47. <servlet-mapping>48. <servlet-name>AxisServlet</servlet-name>49. <url-pattern>*.jws</url-pattern>50. </servlet-mapping>51.52. <servlet-mapping>53. <servlet-name>AxisServlet</servlet-name>54. <url-pattern>/services/*</url-pattern>55. </servlet-mapping>56.57. <servlet-mapping>58. <servlet-name>SOAPMonitorService</servlet-name>59. <url-pattern>/SOAPMonitor</url-pattern>60. </servlet-mapping>61. <welcome-file-list>62. <welcome-file>index.jsp</welcome-file>63. </welcome-file-list>64.</web-app>四、部署启动tomcat:在浏览器地址栏输入http://localhost:8080/axisWebServiceServer/services可以看到已有的WebServicehttp://localhost:8080/axisWebServiceServer/services/HelloServer?wsdl 可以看到自己写的WebService五、测试调用WebServiceJava代码1.package com;2.3.import .MalformedURLException;4.import java.rmi.RemoteException;5.6.import javax.xml.rpc.ServiceException;7.8.import org.apache.axis.client.Call;9.import org.apache.axis.client.Service;11.public class HelloClient {12.13. public static void main(String[] args) {14. String status = "aaaaaaa";15. String endPoint = "http://localhost:8080/axisWebServiceServer/services/HelloServer";16. String operation = "sayHello";17. Service service = new Service();18.19. try {20. Call call = (Call) service.createCall();21. call.setTargetEndpointAddress(new .URL(endPoint));22. call.setOperationName(operation);23. String xml = (String) call.invoke(new Object[] { status });24. System.out.println(xml);25. } catch (ServiceException e) {26. e.printStackTrace();27. } catch (MalformedURLException e) {28. e.printStackTrace();29. } catch (RemoteException e) {30. e.printStackTrace();31. }32.33. }34.35.}成功!!java实现webservice实例一:首先创建个WEB工程,然后:/axis/网站下载Axis安装包.当然还依赖其他包的,我这里在附件里上传了所有应用到得包,方便大家。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
思途科技,网络营销专家
思途科技 让有需求的客户找到你
<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 环境. 1.下载安装 apache 官网下载地址:/axis2/ 选择 Standard Binary Distribution 和 WAR Distribution
2.配置系统环境变量: ①添加 AXIS2_HOME 变量并指向 Standard Binary Distribution 解压目标目录。例如: $AXIS2_HOME$ =D:\axis2-1.6.1; ②将 axis2.bat 所在目录添加到系统环境变量 path 里。例如:将 D:\axis2-1.6.1\bin 添加到 path 现有值的最后面; ③将$AXIS2_HOME$\lib 添加到系统环境变量 classpath 里。例如:将 D:\axis2-1.6.1\lib 添 加到 classpath 现有值的最后面。
思途科技,网络营销专家
创建 Demo HelloWorld
一、service 端开发 1.创建一个 java 项目 2.新建类 HelloWorld.java 参考代码: package sample; import org.apache.axiom.om.OMAbstractFactory; import org.apache.axiom.om.OMElement; import org.apache.axiom.om.OMFactory; import org.apache.axiom.om.OMNamespace;
②支持不同的消息交换模式。目前 Axis2 支持三种模式:In-Only、Robust-In 和 In-Out。In-Only 消息交换模式只有 SOAP 请求,而不需要应答;Robust-In 消息交换模式发送 SOAP 请求, 只有在出错的情况下才返回应答;In-Out 消息交换模式总是存在 SOAP 请求和应答。 ③提供阻塞和非阻塞客户端 API。 ④支持内置的 Web 服务寻址 (WS-Addressing) 。 ⑤灵活的数据绑定,可以选择直接使用 AXIOM,使用与原来的 Axis 相似的简单数据绑定 方法,或使用 XMLBeans、JiBX 或 JAXB 2.0 等专用数据绑定框架。 ⑥新的部署模型,支持热部署。
背景简介
思途科技 让有需求的客户找到你
思途科技项目组最近接到一个银行接口的单子,临时需要用到 axis2 webservice。自己现学 现总结的一些东西,留给新手。少走弯路。
Axis2 简介 ①采用名为 AXIOM(AXIs Object Model)的新核心 XML 处理模型,利用新的 XML 解析 器提供的灵活性按需构造对象模型。
private static EndpointReference targetEPR=new EndpointReference ("http://localhost:8080/axis2/services/HelloWorld");
public static OMElement getSayHelloOMElement(){ OMFactory fac=OMAbstractFactory.getOMFactory(); OMNamespace
3. 把 WAR Distribution 解压到 $tomcat_home$\webapps\axis2 下(新建 axis2 文件夹),当 然你也可以参照 axis2 文档里列出的步骤使用 ant 创建一个 axis2.war ,放到 $tomcat_home$\webapps 下,然后启动 tomcat ,那么 tomcat 会在 webapps 下自动创建 一个 axis2 文件夹。
思途科技,网络营销专家
思途科技 让有需求的客户找到你
各类客户端调用实例
一、java 调用 axis2 webservice (包括单个参数和多个参数方法的调用) 参考代码: 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 s2 { private static EndpointReference targetEPR=new EndpointReference("/axis2/services/SVAMobileWebService"); public static OMElement getSayHelloOMElement(){ OMFactory fac=OMAbstractFactory.getOMFactory(); OMNamespace omNs=fac.createOMNamespace("","andy");
Options options=new Options(); options.setTo(targetEPR); ServiceClient sender=new ServiceClient(); sender.setOptions(options); OMElement sayHello=TestClient.getSayHelloOMElement(); OMElement result=sender.sendReceive(sayHello); System.out.println(result); } catch(Exception axisFault){ axisFault.printStackTrace(); } } } 编译此文件,并执行。 如果有报错,则需根据错误信息检查上述步骤。如果没有错误信息,那么 Demo HelloWorld 就完满完成。
⑦支持 HTTP,SMTP,JMS,TCP 传输协议。 ⑧支持 REST (Representational State Transfer)。
测试环境
【jdk1.6.0】 +【tomcat-6.0.18】 + 【axis2-1.6.1】+【PHP Version 5.3.5】 未测试最低支持配置。
思途客户找到你
public class HelloWorld { public OMElement sayHello(OMElement in){ String name=in.getText(); String info="你好"+name+",给你推荐 "; OMFactory fac=OMAbstractFactory.getOMFactory(); OMNamespace omNs=fac.createOMNamespace("/","hw"); OMElement resp=fac.createOMElement("sayHelloResponse",omNs); resp.setText(info); return resp; } } 3.新建文件 META-INF \ services.xml 参考代码: <?xml version="1.0" encoding="UTF-8"?> <service name="HelloWorld"> <description> This is a sample Web Service. </description> <parameter name="ServiceClass" locked="false">sample.HelloWorld</parameter> <operation name="sayHello">