[Javalist] SOAP header írás webservice-ből.

István Viczián viczian.istvan at gmail.com
2012. Okt. 2., K, 23:08:35 CEST


Üdv,

Kipróbáltam kíváncsiságból, csont nélkül megy:

    @WebMethod
    @WebResult(name = "fahrenheit")
    public long celsiusToFahrenheit(@WebParam(name = "celsius") long
celsius, @WebParam(name = "test", mode=WebParam.Mode.OUT, header=true)
Holder<String> test) {
	test.value = "Egy aprócska kalapocska, benne csacska macska mocska";
        return celsius * 9 / 5 + 32;
    }


<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
   <S:Header>
      <ns2:test xmlns:ns2="http://soapui.jtechlog/">Egy aprócska
kalapocska, benne csacska macska mocska</ns2:test>
   </S:Header>
   <S:Body>
      <ns2:celsiusToFahrenheitResponse xmlns:ns2="http://soapui.jtechlog/">
         <fahrenheit>212</fahrenheit>
      </ns2:celsiusToFahrenheitResponse>
   </S:Body>
</S:Envelope>

--
Viczián István


2012/10/2 István Viczián <viczian.istvan at gmail.com>:
> Üdv,
>
> Nem nagyon építenék a NEtBeans-re, jó dolog, de jobban szeretek minden
> vezérlést a kezembe tudni, valamint IDE független maradni. Persze
> játszani pl. jó vele.
> Ha megnézed, pl. itt egy Maven-es projekt:
> https://github.com/vicziani/jtechlog-soapui-testing
> Próbáld meg esetleg ezt leszedni, és ebben kipróbálni, hogy mi
> történik. Ebben nincs külön interfész.
>
> Üdv,
> --
> Viczián István
>
>
> 2012/10/2 Keresztes Jozsef <jkeresztes at vati.hu>:
>> Természetesen a generikus módon is kipróbáltam, a hibaüzenet ugyanaz :(
>>
>> Az is érdekes hogy nem tehetem ki a metódus elé a @WebMethod annotációt mert:
>> "@WebMethod annotation is not allowed if @WebService:endpointInterface attribute is specified"
>>
>> Ez az endpointinterface pedig egy generált kódra mutat (netbeans generálta), és ebben van leírva melyik metódusom a @WebMethod.
>> Igaz itt lehetne próbálkozni a @WebParam beírással azonban a generált kódot a következő clean+build felülírja, tehát ebben
>> nem kéne belenyúlni. Brrrr....
>>
>> -----Original Message-----
>> From: István Viczián [mailto:viczian.istvan at gmail.com]
>> Sent: Tuesday, October 02, 2012 11:30 AM
>> To: Java lista
>> Subject: Re: [Javalist]SOAP header írás webservice-ből.
>>
>> Holder generikus?
>>
>> Holder<SajatOsztalyom> hhh;
>> --
>> Viczián István
>>
>>
>> 2012/10/2 Keresztes Jozsef <jkeresztes at vati.hu>:
>>> Már rögtön azzal baj van amikor a @WebParam-ot be akarom rakni a paraméterek közé, ugyanis a program build már exception-t dob:
>>>
>>> SEVERE: Exception while loading the app
>>> SEVERE: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.RuntimeException: Servlet web service endpoint '' failure
>>>
>>> Mi a baj az endpoint-tal ?
>>>
>>> Egyébként csak ezt raktam be a a metódus szokásos paramétere mellé:
>>>
>>> @WebParam(mode=javax.jws.WebParam.Mode.OUT, header=true) Holder hhh
>>>
>>> Joe
>>>
>>> -----Original Message-----
>>> From: István Viczián [mailto:viczian.istvan at gmail.com]
>>> Sent: Tuesday, October 02, 2012 10:46 AM
>>> To: Java lista
>>> Subject: Re: [Javalist]SOAP header írás webservice-ből.
>>>
>>> Szia,
>>>
>>> Amit ír nem működik?
>>>
>>> Pl.
>>>
>>> @WebMethod
>>> public void add(long a, long b, @WebParam(mode=OUT,header=true)
>>> Holder<SajatOsztalyodSzepen> header) {
>>>    header.value = new SajatOsztalyodSzepen();
>>> }
>>>
>>> --
>>> Viczián István
>>>
>>>
>>> 2012/10/2 Keresztes Jozsef <jkeresztes at vati.hu>:
>>>> Sziasztok !
>>>>
>>>> Még mindig küzdök a SOAP-pal (JAX-WS).
>>>> Az elkészült webservice a soap-request-ből szépen tudja olvasni a soap-header -ben lévő információkat, ezzel a módszerrel:
>>>>
>>>> HeaderList headerList = (HeaderList)context.getMessageContext().get(JAXWSProperties.INBOUND_HEADER_LIST_PROPERTY);
>>>> String valami = headerList.get(new QName("valami"), true).getStringContent();
>>>>
>>>> ahol a context az osztályban így van definiálva:
>>>>
>>>> @Resource
>>>> WebServiceContext context;
>>>>
>>>> A probléma azzal van amikor a soap-response -ba szeretnék soap-header-t írni. Erre még nem találtam megoldást.
>>>>
>>>> Az ajánlott cikk 4.1.3-as pontja sem igazán magyarázza el hogy kéne ezt megtenni:
>>>> http://metro.java.net/2.0.1/guide/SOAP_headers.html
>>>>
>>>> Szóval a kérdésem az hogy valaki csinált már ilyet, és mi a trükkje a dolognak ?
>>>>
>>>> Joe
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> Javalist mailing list
>>>> Javalist at lists.javaforum.hu
>>>> http://lists.javaforum.hu/mailman/listinfo/javalist
>>> _______________________________________________
>>> Javalist mailing list
>>> Javalist at lists.javaforum.hu
>>> http://lists.javaforum.hu/mailman/listinfo/javalist
>>>
>>> _______________________________________________
>>> Javalist mailing list
>>> Javalist at lists.javaforum.hu
>>> http://lists.javaforum.hu/mailman/listinfo/javalist
>> _______________________________________________
>> Javalist mailing list
>> Javalist at lists.javaforum.hu
>> http://lists.javaforum.hu/mailman/listinfo/javalist
>>
>> _______________________________________________
>> Javalist mailing list
>> Javalist at lists.javaforum.hu
>> http://lists.javaforum.hu/mailman/listinfo/javalist


További információk a(z) Javalist levelezőlistáról