[ http://issues.apache.org/jira/browse/BEEHIVE-600?page=all ]
Xibin Zeng updated BEEHIVE-600:
-------------------------------
Attachment: JIRA.zip
Daryoush - Please find the files in the attached zip file. Note the files were
modified from the original version due to licensing. You will have to make them
into packages that the jws expepects.
Thanks
(Visible to jira-users)
> 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: V1
> 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