webForumDet fria alternativet

Problem med att skapa en SOAP-klient

3 svar · 433 visningar · startad av jme

jmeMedlem sedan maj 20011 967 inlägg
#1

Hej!

Jag håller på och lära mig Web services och SOAP (Apache Axis).

Jag försöker skapa en simpel web service med enstaka metoder.

Jag har följande kod i klassen MyService:

  public void addPerson(Person p)
    {
        if(p != null)
            persons.put(p.getName(), p);
    }
    
    public String getServiceName()
    {
        return "MyService";
    }

    public String echo(String text)
    {
        return text;
    }

Följande kodsnutt anropar metoden echo(String) med "arg" som parameter:


        call.setOperation("echo");
        call.addParameter("arg1", XMLType.XSD_STRING, ParameterMode.IN);
        Object retVal = call.invoke(new Object[] { new String("arg") });

Dum fråga men, hur kan jag anropa en metod som inte tar nåt som parameter?

LimeMedlem sedan sep. 2001837 inlägg
#2

Om du Axis få finns två sätt:

1. Det snygga och kompatibla:

call.invoke( new Object[0] );

2. Axis-sättet (som f.ö. gör ovanstående anrop):
call.invoke();

jmeMedlem sedan maj 20011 967 inlägg
#3

Lime:

Jo, jag såg att man kan anropa call.invoke( new Object[] {});

Hittade ingen metod Object invoke(), hittade däremot void invoke().

LimeMedlem sedan sep. 2001837 inlägg
#4

Jo jag har noterat det jag med... och då får man göra getOutputParams() för att få svaret. Men om man vill hålla det kompatibelt med alla JAX-RPC-implementationer.

T.ex. kodade vi ett system med Axis och sedan bestämmer sig kunden för en "kommersiel och pålitlig" implementation. Varför betala när man kan få det bästa gratis. Fast den kunden är iofs allergisk mot allt vad open source heter. Jag får knappt använda Eclipse eftersom man inte kan betala för den... :-/

124 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
122 ms — hämta tråd, inlägg och bilagor (db)