关于Axis的webservice修改现有类增加服务的问题

时间:2008-07-24 05:26:36   来源:论坛整理  作者:  编辑:chinaitzhe
问题:

当我向一个提供服务的ChromeData类中增加了一个方法, 为什么我在其wsdl中看不到此方法。且通过http,get方式调用此方法也提示此方法不存在, 找不到。 我是否需要更改其它地方?

具体描述如下


已有一个ChromeData类, 我往ChromeData类中添加了一个方法。

这个方法的签名如下
public String getHeaderImageByProvider(final String provider)

作用就是利用一个JDBCTools类连接数据库, 根据provider查询表, 获得与其对应的一副图像的相对路径。

位于WEB-INF目录下 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="ChromeData" provider="java:RPC" style="wrapped" use="literal">
<parameter name="allowedMethods" value="*"/> <parameter name="className" value="com.trilogy.trs.ws.ChromeData"/>
<namespace>http://trilogy.com/trs/ws </namespace>

<!--
The bean mappings must follow the following naming pattern so the client can
rely on that.
qname="trsNS: <Short ClassName>"
xmlns:trsNS="urn: <DTO packageName>"
-->
<beanMapping qname="trsNS:IdValuePair" xmlns:trsNS="urn:dto.ws.trs.trilogy.com"
languageSpecificType="java:com.trilogy.trs.ws.dto.IdValuePair"/>
<beanMapping qname="trsNS:InvoiceRetailPrice" xmlns:trsNS="urn:dto.ws.trs.trilogy.com"
languageSpecificType="java:com.trilogy.trs.ws.dto.InvoiceRetailPrice"/>
<beanMapping qname="trsNS:ZipLocation" xmlns:trsNS="urn:dto.ws.trs.trilogy.com"
languageSpecificType="java:com.trilogy.trs.ws.dto.ZipLocation"/>
<beanMapping qname="trsNS:DealerLocation" xmlns:trsNS="urn:dto.ws.trs.trilogy.com"
languageSpecificType="java:com.trilogy.trs.ws.dto.DealerLocation"/>
<beanMapping qname="trsNS:Incentives" xmlns:trsNS="urn:dto.ws.trs.trilogy.com"
languageSpecificType="java:com.trilogy.trs.ws.dto.Incentives"/>
<beanMapping qname="trsNS:InfoForQuote" xmlns:trsNS="urn:dto.ws.trs.trilogy.com"
languageSpecificType="java:com.trilogy.trs.ws.dto.InfoForQuote"/>
<beanMapping qname="trsNS:ColorDescription" xmlns:trsNS="urn:dto.ws.trs.trilogy.com"
languageSpecificType="java:com.trilogy.trs.ws.dto.ColorDescription"/>
<beanMapping qname="trsNS:StringValuesPair" xmlns:trsNS="urn:dto.ws.trs.trilogy.com"
languageSpecificType="java:com.trilogy.trs.ws.dto.StringValuesPair"/>
<beanMapping qname="trsNS:ModelReview" xmlns:trsNS="urn:dto.ws.trs.trilogy.com"
languageSpecificType="java:com.trilogy.trs.ws.dto.ModelReview"/>
<beanMapping qname="trsNS:ModelRating" xmlns:trsNS="urn:dto.ws.trs.trilogy.com"
languageSpecificType="java:com.trilogy.trs.ws.dto.ModelRating"/>
<beanMapping qname="trsNS:TechSpecification" xmlns:trsNS="urn:dto.ws.trs.trilogy.com"
languageSpecificType="java:com.trilogy.trs.ws.dto.TechSpecification"/>
<beanMapping qname="trsNS:ImageList" xmlns:trsNS="urn:dto.ws.trs.trilogy.com"
languageSpecificType="java:com.trilogy.trs.ws.dto.ImageList"/>
<beanMapping qname="trsNS:Dealer" xmlns:trsNS="urn:dto.ws.trs.trilogy.com"
languageSpecificType="java:com.trilogy.trs.ws.dto.Dealer"/>
<beanMapping qname="trsNS:InventoryVehicle" xmlns:trsNS="urn:dto.ws.trs.trilogy.com"
languageSpecificType="java:com.trilogy.trs.ws.dto.InventoryVehicle"/>
<beanMapping qname="trsNS:VehicleDetails" xmlns:trsNS="urn:dto.ws.trs.trilogy.com"
languageSpecificType="java:com.trilogy.trs.ws.dto.VehicleDetails"/>
<beanMapping qname="trsNS:VehicleOptions" xmlns:trsNS="urn:dto.ws.trs.trilogy.com"
languageSpecificType="java:com.trilogy.trs.ws.dto.VehicleOptions"/>
<beanMapping qname="trsNS:SoldVehicle" xmlns:trsNS="urn:dto.ws.trs.trilogy.com"
languageSpecificType="java:com.trilogy.trs.ws.dto.SoldVehicle"/>
<beanMapping qname="trsNS:Option" xmlns:trsNS="urn:dto.ws.trs.trilogy.com"
languageSpecificType="java:com.trilogy.trs.ws.dto.Option"/>
<beanMapping qname="trsNS:Notable" xmlns:trsNS="urn:dto.ws.trs.trilogy.com"
languageSpecificType="java:com.trilogy.trs.ws.dto.Notable"/>
</service>

省略若干其它 <service>标签
<transport name="local">
<responseFlow>
<handler type="LocalResponder"/>
</responseFlow>
</transport>

</deployment>

网友回复:是不是服务需要重新启动啊
网友回复:重启App
建议用Spring AXIS整合之。
网友回复:有没有可能没重新编译打包部署到webserver上去呀,可以反编译你的这个类看一下是不是有这个新的方法
网友回复:我也是希奇啊, 真不知道怎么搞的。 理论上是可以的, 我在自己的机器上面试过都可以。 吐血。

貌似我用的虚拟机是有点怪怪的。
网友回复:改变.class源代码需要重新发布 (server-config.wsdd)

网友回复:该回复于2008-06-11 09:35:50被版主删除
关键字:Axis,webservice,修改,现有,增加,服务,

文章评论

共有 0 位网友发表了评论 此处只显示部分留言 点击查看完整评论页面