You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@beehive.apache.org by "Eddie O'Neil (JIRA)" <de...@beehive.apache.org> on 2006/02/10 16:00:58 UTC

[jira] Updated: (BEEHIVE-600) Document Literal Wrapped webservice missing methods in wsdl

     [ http://issues.apache.org/jira/browse/BEEHIVE-600?page=all ]

Eddie O'Neil updated BEEHIVE-600:
---------------------------------

    Assign To:     (was: daryoush mehrtash)

> Document Literal Wrapped webservice missing methods in wsdl
> -----------------------------------------------------------
>
>          Key: BEEHIVE-600
>          URL: http://issues.apache.org/jira/browse/BEEHIVE-600
>      Project: Beehive
>         Type: Bug
>   Components: Web Services (181)
>     Versions: V1Alpha, V1Beta, v1m1
>  Environment: N/A
>     Reporter: Xibin Zeng
>  Attachments: BEEHIVE-600-repro-01.tar, BEEHIVE-600-wsmRepro.tar, BEEHIVE-600-wsmRepro.tar, JIRA.zip
>
> This bug might be related to Beehive-599.
> A webservice deployed through Beehive generated a wsdl that is missing methods for wrapped types. 
> For example, generated wsdl contains:
> <complexType name="Employee">
>   <sequence>
>     <element name="value" nillable="true" type="impl:Employee"/>
>   </sequence>
> </complexType>
> What is expected by TCK:
> <xs:complexType name="Employee">
> 				<xs:sequence>
> 					<xs:element name="Name" type="java1:Name"/>
> 					<xs:element name="Dept" type="java1:Department"/>
> 					<xs:element name="Salary" type="java1:Salary"/>
> 					<xs:element name="Address" type="java1:Address"/>
> 					<xs:element name="Title" type="xs:string"/>
> 					<xs:element name="Type" type="xs:int"/>
> 				</xs:sequence>
> The webservice in question is:
> package com.bea.ts.tests.complex.doclit.wrap;
> import com.bea.ts.tests.utils.*;
> import com.bea.ts.tests.utils.holders.*;
> import javax.jws.WebMethod;
> import javax.jws.WebParam;
> import javax.jws.WebService;
> import javax.jws.soap.SOAPBinding;
> @WebService
> @SOAPBinding(style=SOAPBinding.Style.DOCUMENT, use=SOAPBinding.Use.LITERAL, parameterStyle=SOAPBinding.ParameterStyle.WRAPPED)        
> public class ComplexDocLitWrapWebService {
>   @WebMethod
>   public int changeName(@WebParam(name="changename", header=true, mode=WebParam.Mode.INOUT) EmployeeHolder employeeHolder) throws NameException {
>     Employee employee = employeeHolder.value;
>     Name oldName = employee.getName();
>     Name newName = new Name(oldName.getLastName(), oldName.getFirstName());
>     employee.setName(newName);
>     return 0;
>   }
>   @WebMethod
>   public boolean changeDepartment(@WebParam(name="changedepartment", header=true, mode=WebParam.Mode.INOUT) EmployeeHolder employeeHolder) throws DepartmentException {
>     Employee employee = employeeHolder.value;
>     Department department = new Department("Docs", "NY");
>     employee.setDept(department);
>     return true;
>   }
>   @WebMethod
>   public double changeSalary(@WebParam(name="changesalary", header=true, mode=WebParam.Mode.INOUT) EmployeeHolder employeeHolder) throws SalaryException {
>     Employee employee = employeeHolder.value;
>     Salary oldSalary = employee.getSalary();
>     Salary newSalary = new Salary(oldSalary.getSalary() + 5000, oldSalary.getBonusPercentage() + 5);
>     employee.setSalary(newSalary);
>     return 0.0;
>   }
>   @WebMethod
>   public float changeAddress(@WebParam(name="changeaddress", header=true, mode=WebParam.Mode.INOUT) EmployeeHolder employeeHolder) throws AddressException {
>     Employee employee = employeeHolder.value;
>     Address oldAddress = employee.getAddress();
>     Address newAddress = new Address(oldAddress.getEmail(), oldAddress.getPhone(), oldAddress.getStreet(), oldAddress.getCity(),
>       oldAddress.getState(), "99999", oldAddress.getCountry());
>     employee.setAddress(newAddress);
>     return 0.0f;
>   }
>   /*
>   @WebMethod
>   public String[] changeTitle(@WebParam(name="changetitle", header=true, mode=WebParam.Mode.INOUT) EmployeeHolder employeeHolder) throws TitleException {
>     Employee employee = employeeHolder.value;
>     String oldTitle = employee.getTitle();
>     String newTitle = "Senior " + oldTitle;
>     employee.setTitle(newTitle);
>     String[] wrapresult = {"change", "successful"};
>     return wrapresult;
>   }
>  
>   @WebMethod
>   public List changeType(@WebParam(name="changetype", header=true, mode=WebParam.Mode.INOUT) EmployeeHolder employeeHolder) throws TypeException {
>     Employee employee = employeeHolder.value;
>     int oldType = employee.getType();
>     int newType = (oldType + 1) % 3;
>     employee.setType(newType);
>     return new ArrayList();
>     }*/
>   @WebMethod
>   public Employee returnEmployee(@WebParam(name="returnemployee", mode=WebParam.Mode.IN) Employee employee) {
>     return employee;
>   }
>   @WebMethod
>   public Employee returnEmployeeHeader(@WebParam(name="returnemployeeheader", header=true, mode=WebParam.Mode.IN) Employee employee) {
>     return employee;
>   }
>   @WebMethod
>   public int newEmployee(@WebParam(name="newemployee", header=true, mode=WebParam.Mode.OUT) EmployeeHolder employeeHolder) {
>     Name name = new Name("J2EE", "User");
>     Department dept = new Department("Eng", "SF");
>     Salary salary = new Salary(100000, 15);
>     Address address = new Address("j2eeuser@bea.com", "415-123-4567", "Montgomery Street", "SF", "CA", "94104", "U.S.");
>     String title = "Senior Software Engineer";
>     int type = EmployeeType.PERMANENT;
>     Employee employee = new Employee(name, dept, salary, address, title, type);
>     employeeHolder.value = employee;
>     return 0;
>   }
>   @WebMethod
>   public int throwNameException(int foo) throws NameException { 
>     throw new NameException();
>   }
>   @WebMethod
>   public int throwDepartmentException(int foo) throws DepartmentException {
>     throw new DepartmentException();
>   }
>   @WebMethod
>   public int throwSalaryException(int foo) throws SalaryException {
>     throw new SalaryException();
>   }
>   @WebMethod
>   public int throwAddressException(int foo) throws AddressException {
>     throw new AddressException();
>   }
>   @WebMethod
>   public int throwTitleException(int foo) throws TitleException {
>     throw new TitleException();
>   }
>   @WebMethod
>   public int throwTypeException(int foo) throws TypeException {
>     throw new TypeException();
>   }
> }

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira