我有一个第三方Web服务的客户端,必须使用Azis WSDL2Java工具创建。必须使用第三方提供的加密处理程序对每个Web请求进行加密,并且传入的响应myst将以相同的格式进行解密。这一切都很好用,除了我在jar的src / main / resources中的client-config.wsdd中指定了处理程序。 client-config的其中一个参数是用户名,一个是密钥文件的位置。这将需要部署到用户和密钥位置不同的许多不同环境中,并且每次重建时更改值都是不可行的。有没有办法可以将参数传递给我的wsdd或将wsdd放在$ JBOSS_HOME / server // conf文件夹中? (我使用的是JBoss 5.1.0.GA)
wsdd看起来像这样
<?xml version='1.0'?>
<deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java">
<globalConfiguration>
<requestFlow>
<handler name="EncryptionHandler" type="java:com.3rdparty.services.util.EncryptionHandler" >
<parameter name="userName" value="myuser"/>
<parameter name="keyFile" value="/jboss-5.1.0.GA/server/<name>/conf/my.key"/>
<parameter name="passwordCallbackClass" value="com.3rdparty.security.client.PWCallback"/>
</handler>
</requestFlow>
<responseFlow>
<handler name="DecryptionHandler" type="java:com.3rdparty.services.util.DecryptionHandler" >
<parameter name="userName" value="myuser"/>
<parameter name="keyFile" value="/jboss-5.1.0.GA/server/<name>/conf/my.key"/>
</handler>
</responseFlow>
</globalConfiguration>
<transport name="http" pivot="java:org.apache.axis.transport.http.HTTPSender"/>
<transport name="local" pivot="java:org.apache.axis.transport.local.LocalSender"/>
<transport name="java" pivot="java:org.apache.axis.transport.java.JavaSender"/>
</deployment>
答案 0 :(得分:1)
您可以使用系统属性axis.ClientConfigFile
指定client-config.wsdd
文件的特定目录。