JAX-WS problem z pustym obiektem

0

Witam

Napisalem bardzo prosta aplikacje WS:

package webapplication.endpoint;

import javax.jws.WebService;
import javax.jws.WebMethod;

@WebService
public class Main {

    @WebMethod
    public String test(){
        return "dziala";
    }

    @WebMethod
    public Osoba getOsoba(){
        return new Osoba("test");
    }
}

package webapplication.endpoint;

public class Osoba{
    public Osoba(){
    }

    public Osoba(String imie){
        this.imie = imie;
    }

    public String getImie(){
        return imie;
    }

    private String imie;
}

Oraz odpowiedniego klienta:

package javaapplication15;

import webapplication.endpoint.Osoba;

public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

        try { 
            webapplication.endpoint.MainService service = new webapplication.endpoint.MainService();
            webapplication.endpoint.Main port = service.getMainPort();

            java.lang.String result = port.test();
            System.out.println("Result = "+result.toString());
        } catch (Exception ex) {

        }


        try { 
            webapplication.endpoint.MainService service = new webapplication.endpoint.MainService();
            webapplication.endpoint.Main port = service.getMainPort();

            Osoba result = port.getOsoba();
            System.out.println("Result = "+result);
        } catch (Exception ex) {

        }
    }
}

Wywolanie metody port.test() zwraca prawidlowo ciag znakow natomiast wywolanie metody getOsoba() zwraca mi pusty obiekt. Dodatkowo nie moge na nim wywolac metody getImie() pomimo ze taka metoda znajduje sie w tej klasie :/

Co robie nie tak? Nie mam juz do tego nerwow po prostu.

0

Po napisaniu tego posta naszlo mnie olsnienie.

Klase Osoba zastapilem klasa OsobaBean:

package testdanych.endpoint;

public class OsobaBean {
    public OsobaBean(){

    }
    public OsobaBean(String i, String n){
        imie = i;
        nazwisko = n;
    }

    public String getImie() {
        return imie;
    }

    public void setImie(String imie) {
        this.imie = imie;
    }

    public String getNazwisko() {
        return nazwisko;
    }

    public void setNazwisko(String nazwisko) {
        this.nazwisko = nazwisko;
    }

    private String imie;
    private String nazwisko;
}

I dziala prawidlowo :-)

0

A czym było to olśnienie bo poza zmiana nazwy klasy i dodaniu jednego pola nie widze różnicy !!

0

To kiepsko patrzysz i nie widzisz naprawdę istotnej zmiany: zostały dodane settery.

0

Racja, nie zauważyłem

1 użytkowników online, w tym zalogowanych: 0, gości: 1