Announcement

Collapse
No announcement yet.

Probleme mit Axis2-Client auf JBoss WebService

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Probleme mit Axis2-Client auf JBoss WebService

    hi
    ich hab einen WebService mit mehreren Methoden, die entweder Primitves oder Objekte zurückgeben. Die Methoden mit Primitives funktionieren:

    <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
    <env:Header/>
    <env:Body>
    <ns2:countAllBankResponse xmlns:ns2='http://impl.webservice.blzservice.zsys.ok.akdb.de/'>
    <return>3993</return>
    </ns2:countAllBankResponse>
    </env:Body>
    </env:Envelope>

    die Methoden mit Objekt als Rückgabe funktionieren nich:

    <env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'>
    <env:Header/>
    <env:Body>
    <ns2:findBankByBLZResponse xmlns:ns2='http://impl.webservice.blzservice.zsys.ok.akdb.de/'>
    <return>
    <bic>BYLADEM1EBE</bic>
    <blz>70051805</blz>
    <id>3032</id>
    <nameKurz>Kr Spk Ebersberg</nameKurz>
    <nameLang>Kreissparkasse Ebersberg</nameLang>
    <ort>Ebersberg, Oberbay</ort>
    <plz>85554</plz>
    <pruefKz>00</pruefKz>
    </return>
    </ns2:findBankByBLZResponse>
    </env:Body>
    </env:Envelope>


    die geworfene exception:
    log4j:WARN No appenders could be found for logger (org.apache.axis2.description.AxisService).
    log4j:WARN Please initialize the log4j system properly.
    3993
    org.apache.axis2.AxisFault: org.apache.axis2.databinding.ADBException: Unexpected subelement return
    at org.apache.axis2.AxisFault.makeFault(AxisFault.jav a:430)
    at de.akdb.ok.zsys.blzservice.webservice.impl.BLZServ iceWebServiceServiceStub.fromOM(BLZServiceWebServi ceServiceStub.java:12225)
    at de.akdb.ok.zsys.blzservice.webservice.impl.BLZServ iceWebServiceServiceStub.findBankByBLZ(BLZServiceW ebServiceServiceStub.java:813)
    at de.akdb.ok.zsys.blzservice.webservice.impl.Tesst.f indBankByBLZ(Tesst.java:55)
    at de.akdb.ok.zsys.blzservice.webservice.impl.Tesst.m ain(Tesst.java:26)
    Caused by: java.lang.Exception: org.apache.axis2.databinding.ADBException: Unexpected subelement return
    at de.akdb.ok.zsys.blzservice.webservice.impl.BLZServ iceWebServiceServiceStub$BankTO$Factory.parse(BLZS erviceWebServiceServiceStub.java:7528)
    at de.akdb.ok.zsys.blzservice.webservice.impl.BLZServ iceWebServiceServiceStub$FindBankByBLZResponse$Fac tory.parse(BLZServiceWebServiceServiceStub.java:79 85)
    at de.akdb.ok.zsys.blzservice.webservice.impl.BLZServ iceWebServiceServiceStub$FindBankByBLZResponseE$Fa ctory.parse(BLZServiceWebServiceServiceStub.java:4 928)
    at de.akdb.ok.zsys.blzservice.webservice.impl.BLZServ iceWebServiceServiceStub.fromOM(BLZServiceWebServi ceServiceStub.java:12188)
    ... 3 more
    Caused by: org.apache.axis2.databinding.ADBException: Unexpected subelement return
    at de.akdb.ok.zsys.blzservice.webservice.impl.BLZServ iceWebServiceServiceStub$BankTO$Factory.parse(BLZS erviceWebServiceServiceStub.java:7512)
    ... 6 more


    ich wollte zuerst jaxWS auch als Client hernehmen (weil das den server stellt)), aber da ist der rattenschwanz an zu verwendenden JARs zu groß geworden, daß ich einfach Axis2 genommen hab.

    Leider hab ich im Netz kaum etwas über meine Fehlermeldung gefunden, außer (bei jemand anderen), daß es ein Service Problem is. Kann das jemand bestätigen ? Mich verwundert , daß beide Responses "return" als Ergebnis-Tag verwenden, aber abhängig davon, ob das Ergebnis ein Objekt ist, funktionieren.


    PS:
    hier noch mein Service:
    package de.akdb.ok.zsys.blzservice.webservice.impl;

    import javax.annotation.Resource;
    import javax.ejb.EJB;
    import javax.ejb.Stateless;
    import javax.ejb.TransactionAttribute;
    import javax.ejb.TransactionAttributeType;
    import javax.interceptor.Interceptors;
    import javax.jws.WebService;
    import javax.xml.ws.WebServiceContext;

    import de.akdb.ok.zsys.blzservice.entity.Bank;
    import de.akdb.ok.zsys.blzservice.entity.IBank;
    import de.akdb.ok.zsys.blzservice.entity.to.BankTO;
    import de.akdb.ok.zsys.blzservice.interceptors.LoggingInt erceptor;
    import de.akdb.ok.zsys.blzservice.service.IBLZPruefer;
    import de.akdb.ok.zsys.blzservice.service.IBLZPrueferLoca l;

    /**
    * @author OAW
    *
    */
    @Interceptors({LoggingInterceptor.class})
    @TransactionAttribute(TransactionAttributeType.REQ UIRES_NEW)
    @WebService
    @Stateless
    public class BLZServiceWebService {
    @Resource
    WebServiceContext wsCtx;

    /**
    * Service-Object
    */
    @EJB
    protected IBLZPrueferLocal bLZPruefer = null;
    protected IBLZPruefer getBLZPruefer() {
    return bLZPruefer;
    }

    /**
    * delegated calls from service BLZPrueferWebService
    */
    public Boolean check(String strBlz, String strKto, String strMethode) {
    return getBLZPruefer().check(strBlz, strKto, strMethode);

    }

    public Long countAllBank() {
    return bLZPruefer.countAllBank();
    }

    public void createBank(BankTO bank) {
    bLZPruefer.createBank(bank.convert());
    }

    public void deleteBank(BankTO bank) {
    bLZPruefer.deleteBank(bank.convert());
    }

    public BankTO findBankByBLZ(String blz) {
    IBank b = bLZPruefer.findBankByBLZ(blz);
    return new BankTO(b);
    }

    }
    Zuletzt editiert von maximilian.hoetzl; 21.07.2008, 08:41.
Working...
X