WEB SERVICES

0

Witam mam web service na axis2 posiadający 2 metody
public static int[] SKM(String sciezka_arff)
public static void konwersja(String sciezka_bmp,String sciezka_zapis_arff)

Problem jest że nie wiem jak napisać klienta aby w przypadku SKM odebrał int[] a w konwersji nie wiem jak przesłać 2 arg. Wszystkie tutoriale które przeanalizowałem kończą się na hello world albo przesłaniu stringa z imieniem które wypisze Hello, John. Próbowałem już z OMelement ale nie idzie i nic nie mogę w necie wygrzebać, spróbowałem z RPC ale wszystko skończyło się na tym, proszę o pomoc albo jakiegoś linka z przykładem.

		RPCServiceClient serviceClient = new RPCServiceClient();
		Options options = serviceClient.getOptions();
		EndpointReference targetEPR = new EndpointReference(
		"http://localhost:8080/axis2/services/BMPtoRGB");
		options.setTo(targetEPR);
		QName qname1 = new QName("http://localhost:8080/axis2/services/BMPtoRGB", "SKM");
0

Eclipse tworzy projekt klienta na podstawie wsdl'a

0

Próbowałem już za pomocą wsdl2java z binarki axis2, wygeneruje klienta ale kod jest już niekompatybilny (po prostu przestarzały generator z tego co wyczytałem). Natomiast za pomocą wtyczki z eclipse dostaje kod na 6 klas który i tak nie działa... Napisałem prostego klienta na podstawie POJO (http://axis.apache.org/axis2/java/core/docs/pojoguide.html) powiem więcej nawet dla przetestowania wrzuciłem ten przykład ze strony i także nic :P nie jest w stanie zainicjować, czyli dostaje odpowiedź z servera z result == null. Może ktoś wie chociaż dlaczego ten przykład nie działa :P?

Co do kodu klienta z przykładu a także mojego nie otrzymuje żadnych błędów kompilacji itp. Kod klienta:

package rsi.async.client.localhost;
import javax.xml.namespace.QName;
import org.apache.axis2.addressing.EndpointReference;
import org.apache.axis2.client.Options;
import org.apache.axis2.rpc.client.RPCServiceClient;
import rsi.async.localhost.*;

public class Klient {

public static void main(String[] foos) throws Exception {

    RPCServiceClient serviceClient = new RPCServiceClient();

    Options options = serviceClient.getOptions();

    EndpointReference targetEPR = new EndpointReference("http://localhost:8080/axis2/services/BMPtoRGBservice");
    options.setTo(targetEPR);

    // Setting the setKon ;)
    QName opSetBMPtoRGB = new QName("http://localhost:8080/axis2/services/BMPtoRGBservice","setBMPtoRGB");

    BMPtoRGB pic = new BMPtoRGB("D:/test.bmp","D:/testweb.arff");

    pic.setKon();

    Object[] opSetBMptoRGBargs = new Object[] { pic };

    serviceClient.invokeRobust(opSetBMPtoRGB, opSetBMptoRGBargs);

    // Getting the int[]
    QName opGetBMPtoRGB = new QName("http://localhost:8080/axis2/services/BMPtoRGBservice","getBMPtoRGB");

    Object[] opGetBMPtoRGBargs = new Object[] { };
    Class[] returnTypes = new Class[] { BMPtoRGB.class };
    
    Object[] response = serviceClient.invokeBlocking(opGetBMPtoRGB,opGetBMPtoRGBargs, returnTypes);
    
    BMPtoRGB result = (BMPtoRGB) response[0];
    
    if (result == null) {
        System.out.println("result is null");
        return;
    }	

}
}

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