2014-04-21 43 views
0

我開發了JBOSS ESB項目併爲該服務創建代理併成功調用。如何提到JBOSS中的wsdl位置ESB

但是,硬編碼的wsdl位置。

<?xml version="1.0"?> 
<jbossesb parameterReloadSecs="5" 
    xmlns="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.3.1.xsd" 
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://anonsvn.labs.jboss.com/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.3.1.xsd http://anonsvn.jboss.org/repos/labs/labs/jbossesb/trunk/product/etc/schemas/xml/jbossesb-1.3.1.xsd"> 
    <services> 
     <service category="Stock" description="Stock Quote" invmScope="GLOBAL" 
      name="Quote"> 
      <listeners> 
       <http-gateway name="StockQuote-GwListener" /> 
      </listeners> 
      <actions mep="RequestResponse"> 
       <action class="org.jboss.soa.esb.actions.soap.proxy.SOAPProxy" 
        name="proxy"> 
        <property name="wsdl" 
         value="http://localhost:8081/service_sample/services/addSoapPort?wsdl" /> 
       </action> 
      </actions> 
     </service> 
    </services> 
</jbossesb> 

下面的wsdl位置是硬編碼的,如何使其可配置?

<property name="wsdl" 
          value="http://localhost:8081/service_sample/services/addSoapPort?wsdl" /> 

如何管理?

我們需要做其他配置嗎?

請幫助我..

+0

請我們如何將WSDL片段,所以我們能理解你的問題更好。 – Namphibian

+0

請檢查編輯的代碼。 – user3500159

回答

0

中創建一個項目名爲WSDL文件夾,然後將您的WSDL那裏。

它後,你可以在你的動作定義改成這樣:

<action class="org.jboss.soa.esb.actions.soap.proxy.SOAPProxy" name="proxy"> 
       <property name="wsdl" 
        value="claspath:///wsdl/your.wsdl" /> 
       <property name="endpointUrl" value="${service.url}"/> 
      </action> 

在endpointUrl你可以硬編碼您的web服務的URL,或將其放置在一個屬性文件(如上圖所示吧)

要使用屬性文件,你需要在META-INF一的jboss-service.xml文件:

<?xml version="1.0" encoding="UTF-8"?> 
    <server> 
    <mbean code="org.jboss.varia.property.SystemPropertiesService" name="jboss.util:type=Service,name=YourPropertyName"> 
    <attribute name="URLList">/home/foo/your.properties</attribute> 
    <attribute name="Properties" /> 
</mbean> 

在/home/foo/your.properties文件只需添加的網址:

service.url=http://yourservice.url