2011-08-09 74 views
0

我使用Eclipse和Apache軸創建了我的Web服務(Using this link)。當我使用Eclipse和Apchache tomcat在本地機器上測試它時,它工作正常。
然後,我使用eclipse生成的文件將我的web服務部署到另一臺機器上。我將在WebContent\WEB-INF\services\AutocompleteService下創建的文件夾複製到Jboss的server\default\deploy\i2b2.war\WEB-INF\services\AutocompleteService
當我試圖訪問我的服務時,它給了我下面的例外。帶Apache軸的Web服務

SEVERE: org.apache.axis2.AxisFault: Required element null defined in the schema can not be found in the request". 

這是我小的Web服務(不含BIZ邏輯)

public class AutocompleteService 
{ 
    public OMElement getCodes(OMElement input) 
    { 
    String query = input.getText(); 
    OMFactory fac = OMAbstractFactory.getOMFactory(); 
    OMNamespace omNs = fac.createOMNamespace("", ""); 
    OMElement codes = fac.createOMElement("codes", omNs); 
    // some biz logic 

    while (SOME_CONDITION) 
    { 
      OMElement code = fac.createOMElement("code", null, codes); 
      OMAttribute value = fac.createOMAttribute("value", null, tempStr); 
      code.addAttribute(value); 
    } 

     return codes; 
    } 

} 

這裏是我的services.xml文件

service name="AutocompleteService" > 
    <Description> 
     Please Type your service description here 
    </Description> 
    <messageReceivers> 
     <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-only" class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" /> 
     <messageReceiver mep="http://www.w3.org/2004/08/wsdl/in-out" class="org.apache.axis2.rpc.receivers.RPCMessageReceiver"/> 
    </messageReceivers> 
    <parameter name="ServiceClass" locked="false">com.service.AutocompleteService</parameter> 
</service> 

我缺少的東西?

編輯:我使用
1)的Jboss 4.2.2
2)Axisa 2-1.5.2
3)的Tomcat 6

+0

能否請你加上這裏被用來爲Tomcat,JBoss和Axis2的版本信息? – Steen

+0

@Steen:請檢查我的編輯。 – xyz

回答

0

改變了我的services.xml文件和它的工作。我真的很驚訝,因爲提到的文件是由Eclipse生成的,但它仍然沒有奏效。
我更新了我的文件

<service name="AutocompleteService" > 
    <Description> 
     Please Type your service description here 
    </Description> 
    <operation name="getCodes"> 
     <messageReceiver class="org.apache.axis2.receivers.RawXMLINOutMessageReceiver"/> 
    </operation> 
    <parameter name="ServiceClass" locked="false">com.service.AutocompleteService</parameter> 
</service>