初次使用axis2,面对要自定义 address location的路径,和axis2-web, index.jsp 的链接,混弄了1天,幸好顺利解决。
因为我的项目部署在web容器是jboss(port:8080),而外面的web容器是Apache(port:80)。当外面通过80端口访问我的项目时,必需先通过apache,再到JBOSS.
而axis2会自动生成address location,路径与端口为当前的JBOSS.
出来效果如下
<wsdl:service name="Gate">
<wsdl:port name="GateSoap12" binding="tns:GateSoap12">
<soap12:address location="http://myhost.com:8080/project/services/Gate.GateSoap12/"/>
</wsdl:port>
<wsdl:port name="GateSoap" binding="tns:GateSoap">
<soap:address location="http://myhost.com:8080/project/services/Gate.GateSoap/"/>
</wsdl:port>
</wsdl:service>
为了去掉8080端口,有两种方法,
1.自定义 service.xml,它在project/WEB-INF/services/Gate/META-INF/下面
只要把这句设置为false值,就可以默认读取同路劲下的Gate.wsdl的文件 <parameter name="modifyUserWSDLPortAddress">false</parameter>
那个WSDL任你自定。
2. 我们可以修改 axis2.xml 位于project/WEB-INF/conf/下面
查找这句 <!--<parameter name="httpFrontendHostUrl">https://someotherhost/context</parameter>-->
你可以随便定义你想要的hostname 和 port.
例如我想要80端口的,就可以这样: <parameter name="httpFrontendHostUrl">http://myhost.com/project</parameter>
这个修改是全局的,你设置<parameter name="modifyUserWSDLPortAddress">true</parameter>时,就可以自动生成的WSDL,包含了http://myhost.com/project的URL了。
同时,axis2-web里面的所有路径都以http://myhost.com/project开头了。
最后,我想要的效果出来了,
<wsdl:service name="Gate">
<wsdl:port name="GateSoap12" binding="tns:GateSoap12">
<soap12:address location="http://myhost.com/project/services/Gate.GateSoap12/"/>
</wsdl:port>
<wsdl:port name="GateSoap" binding="tns:GateSoap">
<soap:address location="http://myhost.com/project/services/Gate.GateSoap/"/>
</wsdl:port>
</wsdl:service>
Thank you.
分享到:
相关推荐
<soap:address location="http://localhost:8080/axis2/services/HelloWorldService"/> ``` 4. **打包服务**:将接口类、实现类和服务描述文件(WSDL)打包成一个`.aar`文件。Axis2支持通过Ant或Maven脚本来...
<soap:address location="http://localhost:8080/Axis2/services/HelloWorld"/> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <soap:body use="encoded" encoding...
<wsdl:soap:address location="http://10.64.6.60:8080/sjqz/cxf/businessLinkageService"/> ``` **步骤五:生成客户端代码** 最后,使用`WSDL2Java`工具根据修改后的WSDL文件生成客户端代码: ```bash java -D...
CXF主要用来创建和消费SOAP和RESTful Web服务,而Axis则是Apache组织早期推出的一款Web服务框架,主要用于SOAP服务。本文将深入探讨如何使用CXF客户端调用Axis服务端的流程。 ### 一、了解CXF和Axis **CXF**(CXF:...
<soap:address location="http://example.com/HelloWorld"/> ``` 生成代码后,我们需要部署服务。在服务器端,我们可以创建一个`HelloWorldService`类,继承自`org.apache.axis.server.AxisServer`,并设置...
<soap:address location="http://example.com/HelloWorld"/> ``` 三、SOAP1.1规范Arrays 在SOAP 1.1中,数组可以通过几种方式表示,包括SOAP数组(SOAP Array)、数组类型(Array Type)和数组元素(Array ...
<soap:address location="http://[webservice"/> ``` 通过这个示例,我们可以看到 WSDL 文件的基本结构和元素,包括数据类型、消息、操作、绑定和服务等。 结论 使用 PHP 搭建 WebService 服务器需要了解 ...
<soap:address location="http://localhost:8080/phone"/> ``` 通过WSDL2JAVA工具,我们可以自动生成以下Java代码: 1. **电话实体类**:`Phone`类包含了电话号码的各个组成部分,并实现了序列化接口。 2. *...
<soap:address location="http://www.Monson-Haefel.com/jwsbook/BookQuote/"/> ``` - **name** 属性:定义了服务的名称。 - **port** 元素:定义了一个端口。 - **binding** 属性:定义了端口所使用的绑定。 - ...
<soap:address location="http://example.com/hello"/> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <soap:operation soapAction="urn:sayHello"/> <soap:body ...
在早期的Web服务开发中,开发者通常会使用CXF、Axis2、XFire等工具来构建基于Java的应用程序。这些工具之所以被广泛采用,主要是因为它们能够提供广泛的兼容性和灵活性,并且适应多种不同的Java版本环境。然而,在...
<soap:address location="http://example.com/hello"/> ``` 在这个例子中,`types`部分没有显示,但通常会包含定义消息部分的XML Schema。`message`定义了请求和响应的消息结构,`portType`定义了操作,`...