You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@beehive.apache.org by "Xibin Zeng (JIRA)" <be...@incubator.apache.org> on 2005/05/04 02:14:04 UTC

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

Document Literal Wrapped webservice missing methods in wsdl
-----------------------------------------------------------

         Key: BEEHIVE-600
         URL: http://issues.apache.org/jira/browse/BEEHIVE-600
     Project: Beehive
        Type: Test
  Components: Web Services (181)  
    Versions: V1Alpha    
 Environment: N/A
    Reporter: Xibin Zeng


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


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

Posted by "daryoush mehrtash (JIRA)" <be...@incubator.apache.org>.
     [ http://issues.apache.org/jira/browse/BEEHIVE-600?page=comments#action_64510 ]
     
daryoush mehrtash commented on BEEHIVE-600:
-------------------------------------------

I have looked into this bug, the problem is the WSDL that is generated from holders that are in headers is not correct.   I have to update to the new Axis and then try to debug this further.



> 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, V1
>  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("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


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

Posted by "daryoush mehrtash (JIRA)" <be...@incubator.apache.org>.
     [ http://issues.apache.org/jira/browse/BEEHIVE-600?page=all ]

daryoush mehrtash reassigned BEEHIVE-600:
-----------------------------------------

    Assign To: daryoush mehrtash  (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, V1
>  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("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


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

Posted by "Xibin Zeng (JIRA)" <be...@incubator.apache.org>.
     [ 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("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


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

Posted by "daryoush mehrtash (JIRA)" <be...@incubator.apache.org>.
     [ 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("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


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

Posted by "Jeremiah Johnson (JIRA)" <be...@incubator.apache.org>.
     [ http://issues.apache.org/jira/browse/BEEHIVE-600?page=all ]

Jeremiah Johnson updated BEEHIVE-600:
-------------------------------------

    Attachment: BEEHIVE-600-repro-01.tar

I assumed that my own attachments would overwrite old ones when I reused a name.  Since that doesn't happen, then here is the preferred attachment for you to use - BEEHIVE-600-repro-01.tar is the place to start.

> 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, V1
>  Environment: N/A
>     Reporter: Xibin Zeng
>     Assignee: daryoush mehrtash
>      Fix For: TBD
>  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


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

Posted by "daryoush mehrtash (JIRA)" <be...@incubator.apache.org>.
     [ http://issues.apache.org/jira/browse/BEEHIVE-600?page=comments#action_64977 ]
     
daryoush mehrtash commented on BEEHIVE-600:
-------------------------------------------

We stil have this problem with upgraded Axis.  There seems to be a bug in Axis in generating WSDL for header types.  It doesn't seem to recognize holders.  

This bug should not be a show stopper for the V1 release.  We need to try to fix this after the V1 release.



> 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, V1
>  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("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


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

Posted by "daryoush mehrtash (JIRA)" <be...@incubator.apache.org>.
     [ http://issues.apache.org/jira/browse/BEEHIVE-600?page=comments#action_64425 ]
     
daryoush mehrtash commented on BEEHIVE-600:
-------------------------------------------

Xibin,


To be able to duplicate this bug I would need the types that the JWS depends on.

Please attack the jws along with the support types to this bug.  The following classes and any other classes that they include should be attached to this bug.

Employee,Name,Department,Salary,Address

There is also the sample:

http://localhost:8080/wsm-samplesWS/web/complex/DocumentLiteralWrappedSample.jws?wsdl 

That is very much similar to this JWS, which does seem to work for me; there might be something different on the types that are used in this web service.


Daryoush
 

> 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

>
> 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


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

Posted by "Jeremiah Johnson (JIRA)" <be...@incubator.apache.org>.
     [ http://issues.apache.org/jira/browse/BEEHIVE-600?page=all ]

Jeremiah Johnson updated BEEHIVE-600:
-------------------------------------

    Attachment: BEEHIVE-600-wsmRepro.tar

Replacing the previous repro attachment to add some more detail.

> 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, V1
>  Environment: N/A
>     Reporter: Xibin Zeng
>     Assignee: daryoush mehrtash
>      Fix For: TBD
>  Attachments: 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


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

Posted by "Jeremiah Johnson (JIRA)" <be...@incubator.apache.org>.
     [ http://issues.apache.org/jira/browse/BEEHIVE-600?page=all ]

Jeremiah Johnson updated BEEHIVE-600:
-------------------------------------

    Attachment: BEEHIVE-600-wsmRepro.tar

I am working on making a more clear repro.  This will give you an idea of what is going wrong.  Untar into some directory and then do the following:
cd BEEHIVE-600
ant -f beehive-wsm/WEB-INF/src/build.xml build war
mv BEEHIVE-600.war $CATALINA_HOME/webapps
http://localhost:8080/BEEHIVE-600/

Note that this script assumes that you have a Beehive distribution at BEEHIVE_HOME.  At the Web page, there are 4 links - 3 are good and the forth is bad.  Below the bad link is XML showing what is there and what is expected.

> 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, V1
>  Environment: N/A
>     Reporter: Xibin Zeng
>     Assignee: daryoush mehrtash
>      Fix For: TBD
>  Attachments: 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


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

Posted by "Eddie O'Neil (JIRA)" <be...@incubator.apache.org>.
     [ http://issues.apache.org/jira/browse/BEEHIVE-600?page=all ]

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

      Assign To: daryoush mehrtash
           type: Bug  (was: Test)
        Version: V1Beta
                 V1
    Fix Version: V1

Daryoush, another WSM issue.  I've fixed this one up (converted it into a bug) and passed it along.

If anyone else wants to step in and help fix WSM issues, feel free to grab this one!

> 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

>
> 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