0

Getting issue when generating client - A class/interface with the same name "exercise.order.bean.GetAccountResp onse" is already in use. Use a class customization to resolve this conflict. line 22 of /exWeb/BusinessBean?wsdl

Here is wsdl -

    <wsdl:definitions name="BusinessBeanService" targetNamespace="http://bean.order.exercise/"><wsdl:types><xs:schema targetNamespace="http://bean.order.exercise/" version="1.0"><xs:element name="GetAccount" type="tns:GetAccount"/><xs:element name="GetAccountResponse" type="tns:GetAccountResponse"/><xs:complexType name="GetAccount"><xs:sequence><xs:element minOccurs="0" name="getAccountRequest" type="tns:getAccountRequest"/></xs:sequence></xs:complexType><xs:complexType name="getAccountRequest"><xs:sequence><xs:element minOccurs="0" name="accountID" type="xs:string"/><xs:element minOccurs="0" name="clientID" type="xs:string"/></xs:sequence></xs:complexType><xs:complexType name="GetAccountResponse"><xs:sequence><xs:element minOccurs="0" name="return" type="tns:getAccountResponse"/></xs:sequence></xs:complexType><xs:complexType name="getAccountResponse"><xs:sequence><xs:element minOccurs="0" name="accountID" type="xs:string"/><xs:element minOccurs="0" name="accountName" type="xs:string"/><xs:element minOccurs="0" name="clientID" type="xs:string"/><xs:element minOccurs="0" name="orderCount" type="xs:string"/></xs:sequence></xs:complexType></xs:schema></wsdl:types><wsdl:message name="GetAccountResponse"><wsdl:part element="tns:GetAccountResponse" name="parameters">
</wsdl:part></wsdl:message><wsdl:message name="GetAccount"><wsdl:part element="tns:GetAccount" name="parameters">
</wsdl:part></wsdl:message><wsdl:portType name="BusinessBean"><wsdl:operation name="GetAccount"><wsdl:input message="tns:GetAccount" name="GetAccount">
</wsdl:input><wsdl:output message="tns:GetAccountResponse" name="GetAccountResponse">
</wsdl:output></wsdl:operation></wsdl:portType><wsdl:binding name="BusinessBeanServiceSoapBinding" type="tns:BusinessBean"><soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/><wsdl:operation name="GetAccount"><soap:operation soapAction="" style="document"/><wsdl:input name="GetAccount"><soap:body use="literal"/></wsdl:input><wsdl:output name="GetAccountResponse"><soap:body use="literal"/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:service name="BusinessBeanService"><wsdl:port binding="tns:BusinessBeanServiceSoapBinding" name="BusinessBeanPort"><soap:address location="http://localhost:8080/exWeb/BusinessBean"/></wsdl:port></wsdl:service></wsdl:definitions>

EJB -

@Stateless
@WebService
public class BusinessBean implements BusinessService {

@EJB private DataServiceLocal dataService;

   @Override
   @WebMethod
   @WebResult
   public GetAccountResponse GetAccount(@WebParam GetAccountRequest getAccountRequest) {

    GetAccountResponse gResponse = new GetAccountResponse();

    String clientID =  getAccountRequest.getAccountID();
    String accountID = getAccountRequest.getAccountID();

    //Find the list of order
    Order order = dataService.findOrder(accountID);

    //Find the account details
    Account account = dataService.findAccount(accountID);

    gResponse.setAccountID(accountID);
    gResponse.setAccountName(account.getAccname());
    gResponse.setClientID(clientID);
    gResponse.setOrderCount("");

    return gResponse;       

}
kolossus
  • 20,559
  • 3
  • 52
  • 104

1 Answers1

0

The root cause is likely going to be the web service parameter style you're using. JAX-WS defaults to the WRAPPED parameter style.

What this means is that in the WSDL, there will already be a GetAccountResponse type, that represents the response message that your webservice generates. This type (or part) is different and separate from the GetAccountResponse class that you have declared as the output of your webservice operation. This result of this duplication is what you're experiencing.

To resolve, use the autoNameResolution parameter when importing the WSDL.

   wsimport BusinessBean.wsdl -B-XautoNameResolution

See also:

kolossus
  • 20,559
  • 3
  • 52
  • 104