webForumDet fria alternativet

Problem med att skapa en SOAP-klient

Java

3 svar · 433 visningar · startad av jme

Medlem sedan maj 20012 237 inlägg
Frågan#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?

Medlem sedan sep. 2001961 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();

Medlem sedan maj 20012 237 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().

Medlem sedan sep. 2001961 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... :-/

261 ms totalt · 4 externa anrop · v20260731065814-full.86ec41c2
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
122 ms — ändringar (db)