AXIS1.4部署

还是那个项目 由于中间件用的VC,而且用的是AXIS1.3
所以之前用AXIS2实现的服务被它解析出来总是有问题,明明传的是数组过去,结果生成的代理类却不是数组,问题出在了标签的不一致上 AXIS2已经不支持用array类型了…………

所以我得改,把之前的服务改用axis1的来实现

之前看过,感觉挺麻烦,就没认真看了,就找了个部署方便的AXIS2来做,现在得硬着头皮上了…………

不过话说回来,认真看过后感觉也就那么回事,没啥难的,这人啊 真得有压力才有动力……

还是说说axis1实现webservice的过程吧
本来要上apache下1.3的版本的 结果链接都出错了,就下了个1.4的用用……

把源文件都下下来了,把里面那个带例子的文件夹中的lib文件下要用的jar包都放到自己工程中,然后将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>
<servlet-name>SOAPMonitorService</servlet-name>
<servlet-class>
org.apache.axis.monitor.SOAPMonitorService
</servlet-class>
<init-param>
<param-name>SOAPMonitorPort</param-name>
<param-value>5001</param-value>
</init-param>
<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>

<servlet-mapping>
<servlet-name>SOAPMonitorService</servlet-name>
<url-pattern>/SOAPMonitor</url-pattern>
</servlet-mapping>



接着将要提供服务的bean复制到webroot目录下,改名为.jws即可以
在地址栏输入http://localhost:8080/XX/XX.jws
就能看到相应的wsdl

这是其中一种部署方式。

那天和那中间件合的时候又出了点问题,这样部署后的wsdl文件中比较乱,有很多ip啊什么的多余信息,于是在那人的要求下换成了wsdd部署,如下

server-config.wsdd:
<?xml version="1.0" encoding="UTF-8"?>
<deployment name="defaultClientConfig"
xmlns="http://xml.apache.org/axis/wsdd/"
xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"
xmlns:handler="http://xml.apache.org/axis/wsdd/providers/handler">

<globalConfiguration>
<parameter name="disablePrettyXML" value="true"/>
<parameter name="dotNetSoapEncFix" value="true"/>
<parameter name="enableNamespacePrefixOptimization" value="false"/>
<requestFlow>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="session"/>
</handler>
<handler type="java:org.apache.axis.handlers.JWSHandler">
<parameter name="scope" value="request"/>
<parameter name="extension" value=".jwr"/>
</handler>
<!-- uncomment this if you want the SOAP monitor -->
<!--
<handler type="java:org.apache.axis.handlers.SOAPMonitorHandler"/>
-->
</requestFlow>
<!-- uncomment this if you want the SOAP monitor -->
<!--
<responseFlow>
<handler type="java:org.apache.axis.handlers.SOAPMonitorHandler"/>
</responseFlow>
-->
</globalConfiguration>

<handler type="java:org.apache.axis.handlers.http.URLMapper" name="URLMapper"/>
<handler type="java:org.apache.axis.transport.local.LocalResponder" name="LocalResponder"/>
<handler type="java:org.apache.axis.handlers.SimpleAuthenticationHandler" name="Authenticate"/>


<service name="FileSearch" provider="java:RPC">
<parameter name="scope" value="Request"/>
<parameter name="className" value="hpdfs.FileSearchServiceImpl"/>
<parameter name="allowedMethods" value="*"/>
<namespace>http://FileSearch</namespace>
<beanMapping qname="myNS:Fileinfo" xmlns:myNS="http://FileSearch/Beans" languageSpecificType="java:bit.hpdfs.POJO.Fileinfo"/>
<beanMapping qname="myNS:RelatedPic" xmlns:myNS="http://FileSearch/Beans" languageSpecificType="java:bit.hpdfs.POJO.Relatedpic"/>
<beanMapping qname="myNS:FileDetailsInfo" xmlns:myNS="http://FileSearch/Beans" languageSpecificType="java:hpdfs.FileDetailsInfo"/>
<beanMapping qname="myNS:FileBasicInfo" xmlns:myNS="http://FileSearch/Beans" languageSpecificType="java:hpdfs.FileBasicInfo"/>
<beanMapping qname="myNS:FileDirInfo" xmlns:myNS="http://FileSearch/Beans" languageSpecificType="java:hpdfs.FileDirInfo"/>
</service>

<transport name="http">
<parameter name="qs:list"
value="org.apache.axis.transport.http.QSListHandler"/>
<parameter name="qs:method"
value="org.apache.axis.transport.http.QSMethodHandler"/>
<parameter name="qs:wsdl"
value="org.apache.axis.transport.http.QSWSDLHandler"/>
<requestFlow>
<handler type="URLMapper"/>
<handler type="java:org.apache.axis.handlers.http.HTTPAuthHandler"/>
</requestFlow>
</transport>

<transport name="local">
<responseFlow>
<handler type="LocalResponder"/>
</responseFlow>
</transport>

</deployment>


将这个文件放到WEB-INF目录下即可,注意<service></service> 部分,就是服务部署描述,按字面意思就能明白。然后在地址栏输入http://localhost:8080/XX/services
就能看到相应的服务列表 点击链接就能查看相应服务的wsdl

和AXIS2挺像,不过在AXIS2中我通过在地址栏上输入服务和相应的方法名就能调用相应服务的方法,不过在AXIS1中似乎不行,还是我没写对……有时间在看看~
部署WebService接口时,使用Apache Axis 1.4可以让你通过一系列标准化的步骤,将业务逻辑转换为可通过网络调用的服务。在Eclipse中部署WebService接口,首先需要编写一个包含业务方法的Java类。接着,在Eclipse项目中通过右键菜单选择创建WebService,按照向导提示配置你的业务方法,Eclipse将自动生成部署所需的wsdd文件和其他关键文件。 参考资源链接:[Java实现Axis1.4 WebService接口发布与配置步骤详解](https://wenku.csdn.net/doc/6xk31xwny7?spm=1055.2569.3001.10343) 接下来,使用Eclipse的servlet容器(如Tomcat)来运行你的项目。通过Eclipse的'Run As' -> 'Run on Server'选项,选择你的服务器并启动项目。如果需要通过cmd命令行进行配置,你需要使用Axis提供的AdminClient工具。例如,可以通过以下命令行来部署你的WebService: java -Djava.ext.dirs=<Axis_JARs_directory> org.apache.axis.AdminClient http://localhost:8080/your_project_name/servicesdeploy.wsdd 请替换尖括号中的内容为实际的JAR文件目录和你的项目部署地址。这条命令应该在包含deploy.wsdd文件的目录下执行,确保命令行中的路径正确无误。 部署完成后,你可以在浏览器中通过访问`http://localhost:8080/your_project_name/services/AxisServlet`来查看部署的服务列表。点击相应的WSDL链接,你可以查看服务接口的定义,这一步骤对于其他系统调用你的服务非常关键。 若要深入学习如何使用Axis 1.4进行WebService接口的发布与配置,可以参考《Java实现Axis1.4 WebService接口发布与配置步骤详解》一文。该教程详细介绍了整个流程,从创建业务方法类到最终的服务访问验证,适合希望系统学习和实践Axis1.4 WebService部署的开发者。 参考资源链接:[Java实现Axis1.4 WebService接口发布与配置步骤详解](https://wenku.csdn.net/doc/6xk31xwny7?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值