Java @返回ArrayList的web方法的SOAPBinding(style=style.RPC)

Java @返回ArrayList的web方法的SOAPBinding(style=style.RPC),java,web-services,soap,wsdl,Java,Web Services,Soap,Wsdl,这是我的web服务代码 import java.util.ArrayList; import javax.jws.WebService; import javax.jws.soap.SOAPBinding; import javax.jws.soap.SOAPBinding.Style; @WebService @SOAPBinding(style=Style.RPC) public class ProductCatalog { public ArrayList<String

这是我的web服务代码

import java.util.ArrayList;

import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;

@WebService
@SOAPBinding(style=Style.RPC)
public class ProductCatalog {

    public ArrayList<String> getProductCategories()
    {
        ArrayList<String> categories=new ArrayList<String>();
        categories.add("books");
        categories.add("movies");
        categories.add("music");

        return categories;

    }

}


      I have given `@SOAPBinding(style=Style.RPC)` annotation, but this is not showing any effect in generated wsdl.. 
wsdl发生了变化,它没有引用任何外部文档

<types/>
<message name="getProductCategories"/>
<message name="getProductCategoriesResponse">
<part name="return" type="xsd:string"/>
</message>

是否有任何方法可以获取返回类型数组列表的rpc样式。。。甚至文档stylesoap inded wsdl也在返回ArrayList对象。。。我想要数据

///////////更新代码///////////

import java.util.ArrayList;

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;

@WebService
@SOAPBinding(style = Style.RPC)

public class PatientsList {

@WebMethod
    public BeanList getpatientList()
    {
    BeanList bean=new BeanList();

        ArrayList<String> patientList=new ArrayList<String>();
        patientList.add("ajay");
        patientList.add("vijay");
        patientList.add("kumari");
        bean.setPatientList(patientList);
        //return bean;
        return bean ;

    }

}



import java.util.ArrayList;

public class BeanList {
    private ArrayList<String> patientList;

    public ArrayList<String> getPatientList() {
        return patientList;
    }

    public void setPatientList(ArrayList<String> patientList) {
        this.patientList = patientList;
    }

}
import java.util.ArrayList;
导入javax.jws.WebMethod;
导入javax.jws.WebService;
导入javax.jws.soap.SOAPBinding;
导入javax.jws.soap.SOAPBinding.Style;
@网络服务
@SOAPBinding(style=style.RPC)
公营班级病人名单{
@网络方法
公共BeanList getpatientList()
{
BeanList bean=新的BeanList();
ArrayList patientList=新建ArrayList();
patientList.添加(“ajay”);
patientList.添加(“vijay”);
patientList.添加(“kumari”);
bean.setPatientList(patientList);
//返回豆;
返回豆;
}
}
导入java.util.ArrayList;
公共类BeanList{
私人ArrayList患者名单;
公共阵列列表getPatientList(){
返回病人名单;
}
公共无效setPatientList(ArrayList patientList){
this.patientList=patientList;
}
}
即使这样也会给你

 <types>
<xsd:schema>
<xsd:import namespace="http://symp.com/" schemaLocation="http://rajasekhar_pc:9090/NewTestMart/PatientsListService?xsd=1"/>
</xsd:schema>
</types>


but i want the wsdl to be in RPC style

但是我希望wsdl是RPC风格的

使用数组而不是ArrayList,因为JAXB不能将集合作为顶级对象处理,只能作为bean的属性处理


请注意,在JAX-WS中,RPC/encoded不支持作为消息传递模式。如果要发送SOAP编码的消息或创建RPC/编码样式的WSDL,可以使用JAX-RPC或Apache Axis V1。

谢谢。。。我甚至尝试返回一个bean,该bean将list作为属性。。但这也不反映rpc样式no,即使我尝试返回数组时,它也以文档样式显示,但以rpc样式显示bot,因为我知道,如果您创建一个bean,那么您可以使用集合作为属性,这样做很有效!你的代码对我来说很好。检查您的XSD,您将看到一切正常。您正在使用JAX-WS吗?如果是,请注意,JAX-WS RPC/encoded不支持作为消息传递模式。如果要发送SOAP编码的消息或创建RPC/编码样式的WSDL,可以使用JAX-RPC或Apache Axis V1。
import java.util.ArrayList;

import javax.jws.WebMethod;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;

@WebService
@SOAPBinding(style = Style.RPC)

public class PatientsList {

@WebMethod
    public BeanList getpatientList()
    {
    BeanList bean=new BeanList();

        ArrayList<String> patientList=new ArrayList<String>();
        patientList.add("ajay");
        patientList.add("vijay");
        patientList.add("kumari");
        bean.setPatientList(patientList);
        //return bean;
        return bean ;

    }

}



import java.util.ArrayList;

public class BeanList {
    private ArrayList<String> patientList;

    public ArrayList<String> getPatientList() {
        return patientList;
    }

    public void setPatientList(ArrayList<String> patientList) {
        this.patientList = patientList;
    }

}
 <types>
<xsd:schema>
<xsd:import namespace="http://symp.com/" schemaLocation="http://rajasekhar_pc:9090/NewTestMart/PatientsListService?xsd=1"/>
</xsd:schema>
</types>


but i want the wsdl to be in RPC style