[ http://issues.apache.org/jira/browse/BEEHIVE-600?page=all ]
daryoush mehrtash updated BEEHIVE-600: -------------------------------------- Fix Version: TBD (was: V1) > 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: V1, V1Alpha, V1Beta > Environment: N/A > Reporter: Xibin Zeng > Assignee: daryoush mehrtash > Fix For: TBD > Attachments: 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("[EMAIL PROTECTED]", "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