Hi Raymond,

You are right, I can put this in place.

On Fri, Feb 13, 2009 at 11:05 AM, Raymond Feng <[email protected]> wrote:

>  Hi,
>
> I think we need to hava an FAQ for these kind of issues.
>
> Tuscany treats POJO as JAXB for the XML serialization/deserialization. JAXB
> has a set of default rules that map java properties to XML elements. The
> simplest case is to use JavaBeans to represent the data. Interfaces cannot
> be directly supported unless you use the techniques described in [1].
>
> In your case, your Employee class can look like:
>
> public class Employee
> {
>     public String name="";  // You can use setter/getter pattern too
>     public String id="";
>     public String exportValue( String nameid ){
>         return nameid;
>     }
>     public Object importValue( String name, String id ){
>         this.name=name;  this.id=id;  return name+id;
>     }
> }
> [1] https://jaxb.dev.java.net/guide/Mapping_interfaces.html
>
> Thanks,
> Raymond
>
>  *From:* Tuscany User <[email protected]>
> *Sent:* Thursday, February 12, 2009 8:50 PM
> *To:* [email protected]
> *Subject:* IllegalAnnotationsException - exposing soap service
>
> Hi all,
>      I was trying a simple calculator soap service and ran into the
> following exception. Please suggest on what can be done to overcome this
> exception.
> SEVERE: Exception thrown was: org.osoa.sca.ServiceRuntimeException:
> com.sun.xml.bind.v2.runtime.IllegalAnnotationsException: 2 counts of
> IllegalAnnotationExceptions
> com.samples.simpleCalculatorSOAP.EmployeeInterface is an interface, and JAXB
> can't handle interfaces.
>         this problem is related to the following location:
>                 at com.samples.simpleCalculatorSOAP.EmployeeInterface
>                 at public
> com.samples.simpleCalculatorSOAP.EmployeeInterface
> com.samples.simpleCalculatorSOAP.Employee1.getEmployeeInterface()
>                 at com.samples.simpleCalculatorSOAP.Employee1
> com.samples.simpleCalculatorSOAP.EmployeeInterface does not have a no-arg
> default constructor.
>         this problem is related to the following location:
>                 at com.samples.simpleCalculatorSOAP.EmployeeInterface
>                 at public
> com.samples.simpleCalculatorSOAP.EmployeeInterface
> com.samples.simpleCalculatorSOAP.Employee1.getEmployeeInterface()
>                 at com.samples.simpleCalculatorSOAP.Employee1
>      The class that is exposed as soap service is as below.
> package com.samples.simpleCalculatorSOAP;
> import org.osoa.sca.annotations.Remotable;
> @Remotable
>     public class SimpleCalculatorServiceImpl extends
> SimpleCalculatorServiceImplBase {
>     public String add(double n1, double n2){
>         Double temp = n1+n2;  return temp.toString();
>     }
>     public String subtract(double n1, double n2){
>         Double temp = n1-n2;   return temp.toString();
>     }
>     public String multiply(double n1, double n2){
>         Double temp = n1*n2;  return temp.toString();
>     }
>     public String divide(double n1, double n2){
>         Double temp = n1/n2;  return temp.toString();
>     }
>
> }
>
>       The definition of the remaining classes/interfaces is as below.
>
> ---------------------------------------------------------------------------------------
> package com.samples.simpleCalculatorSOAP;
> public class SimpleCalculatorServiceImplBase {
>     public final void setEmployee1(Employee1 e){
>         System.out.println(e.getId()+" "+e.getName());
>     }
> }
>
> ---------------------------------------------------------------------------------------
> package com.samples.simpleCalculatorSOAP;
> public final class Employee1 {
>     private EmployeeInterface ei = null;
>     public void setEmployeeInterface(EmployeeInterface e){
>         this.ei=e;
>     }
>
>     public EmployeeInterface getEmployeeInterface(){
>         return ei;
>     }
> }
>
> ---------------------------------------------------------------------------------------
> package com.samples.simpleCalculatorSOAP;
> public interface EmployeeInterface {
>     public String exportValue( String nameid );
>     public Object importValue( String name, String id );
> }
>
> ---------------------------------------------------------------------------------------
> package com.samples.simpleCalculatorSOAP;
> public class EmployeeImpl implements EmployeeInterface
> {   private String name="";  private String id="";
>     public String exportValue( String nameid ){
>         return nameid;
>     }
>     public Object importValue( String name, String id ){
>         this.name=name;  this.id=id;  return name+id;
>     }
> }
>
> ---------------------------------------------------------------------------------------
>
>      The example does not make sense on the implementation stand point, I
> mean we are looking into the calculator implementation and then we have some
> piece that talks about Employee. I was not looking to get this sample right,
> this sample was meant for experimenting a few things and then hit the
> IllegalAnnotationsException. Please suggest what annotations have to be
> added to make this sample working. It would be great if you guys can added
> the annotations in the above pseudo code itself to make this sample working.
> By working I mean atleast deploying since I am hitting the issue while
> deploying this app.
>
> Thanks.
>



-- 
Thanks & Regards,
Ramkumar Ramalingam

Reply via email to