On Apr 29, 2013, at 5:27 AM, Pampolini Matteo <matteo.pampol...@selex-es.com> 
wrote:

> I've just completed the tests: one of my ONVIF devices answers with a
> SOAP 1.2 message, that's the cause of the exception.
> 
> But doing as you suggested, i.e. changing the return value of
> getSoapVersion(), fixes the issue and all the devices are discovered
> without any exception, really great, many thanks again!

Major thanks for testing that.   That's great news.  The WS-Discovery spec does 
allow SOAP 1.2, but the examples for ONVIF were all using 1.1 which is why I 
set it to 1.1.  Glad to see it's not needed. 

> Will you add another API to configure the return value of
> getSoapVersion() or do you have a better solution in mind?

I just updated the code to use 1.2 by default in all cases, but did add a new 
flag to force the use of 1.1 if needed.   It sounds like it won't be needed 
though.

Can you do a quick double check to make sure that all works and I didn't screw 
something up? 

Dan


> 
> Best regards,
> 
> Matteo
> 
> On 26/04/2013 17:11, Daniel Kulp wrote:
>> On Apr 23, 2013, at 11:05 AM, Pampolini Matteo 
>> <matteo.pampol...@selex-es.com> wrote:
>> 
>>> Hi again Daniel,
>>> 
>>> I compiled 2.7.5 snapshot from scratch on Linux and worked on the
>>> resulting distribution, everything went fine.
>>> 
>>> And, most important, WS-Discovery works, setting version to 1.0 I was
>>> able to find all the Onvif devices in my subnet,
>>> great work, many thanks once again.
>> That is really really cool.  Major thanks for testing that.
>> 
>> 
>>> However an exception is thrown,
>>> please find it below:
>> Hmm… Is there any chance you could do a  wireshark capture of the incoming 
>> packets?  (or maybe enable logging interceptors on the bus or something)  
>> When we switch to WS-Discovery 1.0, I also flip from soap 1.2 to soap 1.1 
>> since the ONVIF docs all use SOAP 1.1 in the examples.   However, this looks 
>> like some device or something is responding with a 1.2 soap message instead 
>> of a 1.1 message.   I'd like to see that particular message to see if it's 
>> coming from an ONVIF device or something else (certainly want to make sure 
>> it's not a CXF endpoint).    Normally, an endpoint should definitely not 
>> response to 1.1 based request with a 1.2 based message.   However, if you 
>> view WS-Discovery as a series of one-ways instead of a request/response, it 
>> could possibly make some sense.
>> 
>> Since you already figured out how to build CXF, could you try something 
>> else?  In:
>> services/ws-discovery/ws-discovery-api/src/main/java/org/apache/cxf/ws/discovery/WSDVersion.java
>> 
>> can you edit the WSDVersion10.getSoapVersion() call to return 
>> SOAPBinding.SOAP12HTTP_BINDING instead?  That would keep it 1.2, but that 
>> SHOULD be OK according to the WS-Discovery 1.0 spec.   I'd like to see if 
>> the ONVIF devices can respond to that.  If so, I'd keep it 1.2 as then the 
>> CXF can process both 1.1 and 1.2 responses.   However, if the devices don't 
>> support 1.2, I'd need to figure something else out.
>> 
>>> Which is the release plan for 2.7.5?
>> I'm actually thinking sometime either next week or the week after due to 
>> some issues around the woodstox requirements and such that are now fixed.   
>> Thus, if this could be tested quickly, we could get this added to it.
>> 
>> 
>> Thanks!
>> Dan
>> 
>> 
>> 
>>> WARNING: Interceptor for
>>> {http://schemas.xmlsoap.org/ws/2005/04/discovery}DiscoveryProxy#{http://cxf.apache.org/jaxws/dispatch}Invoke
>>> has thrown exception, unwinding now
>>> org.apache.cxf.binding.soap.SoapFault: A SOAP 1.2 message is not valid
>>> when sent to a SOAP 1.1 only endpoint.
>>>    at
>>> org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:159)
>>>    at
>>> org.apache.cxf.binding.soap.interceptor.ReadHeadersInterceptor.handleMessage(ReadHeadersInterceptor.java:62)
>>>    at
>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
>>>    at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:782)
>>>    at
>>> org.apache.cxf.transport.udp.UDPConduit.dataReceived(UDPConduit.java:106)
>>>    at
>>> org.apache.cxf.transport.udp.UDPConduit.access$000(UDPConduit.java:59)
>>>    at
>>> org.apache.cxf.transport.udp.UDPConduit$UDPBroadcastOutputStream.close(UDPConduit.java:290)
>>>    at
>>> org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
>>>    at org.apache.cxf.transport.udp.UDPConduit.close(UDPConduit.java:118)
>>>    at
>>> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62)
>>>    at
>>> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:271)
>>>    at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:530)
>>>    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:456)
>>>    at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:434)
>>>    at
>>> org.apache.cxf.endpoint.ClientImpl.invokeWrapped(ClientImpl.java:427)
>>>    at org.apache.cxf.jaxws.DispatchImpl.invokeAsync(DispatchImpl.java:416)
>>>    at
>>> org.apache.cxf.ws.discovery.WSDiscoveryClient.probe(WSDiscoveryClient.java:333)
>>>    at
>>> org.apache.cxf.ws.discovery.WSDiscoveryClient.probe(WSDiscoveryClient.java:283)
>>>    at org.apache.cxf.samples.discovery.Client.main(Client.java:46)
>>>    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>    at
>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
>>>    at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>    at java.lang.reflect.Method.invoke(Method.java:601)
>>>    at org.codehaus.mojo.exec.ExecJavaMojo$1.run(ExecJavaMojo.java:291)
>>>    at java.lang.Thread.run(Thread.java:722)
>>> 
>>> Which is the release plan for 2.7.5?
>>> 
>>> Best regards,
>>> 
>>> Matteo
>>> 
>>> On 08/04/2013 20:36, Daniel Kulp wrote:
>>>> I just committed a bunch of updates to the WS-Discovery stuff that adds a 
>>>> setVersion10() method onto the WSDiscoveryClient that should allow it to 
>>>> flip to the older WS-Discovery spec (and SOAP 1.1 and the older 
>>>> WS-Addressing version).   It also fixes a bunch of things with the wsa 
>>>> Actions and other bugs.    I'm hoping that will allow this to work.   Is 
>>>> there any way you could grab tomorrows snapshots (or build from the latest 
>>>> branches) and give it a spin and see?
>>>> 
>>>> On the server side, CXF services will now response to a 1.0 Probe as well 
>>>> as the 1.1 probe.  However, I do still have a bit of mapping to do to map 
>>>> the various scopes.  Right now, they only look at the 1.1 scope names.
>>>> 
>>>> 
>>>> Dan
>>>> 
>>>> 
>>>> 
>>>> On Apr 4, 2013, at 1:27 PM, Daniel Kulp <dk...@apache.org> wrote:
>>>> 
>>>>> Hit send too soon….
>>>>> 
>>>>> On Apr 4, 2013, at 1:25 PM, Daniel Kulp <dk...@apache.org> wrote:
>>>>> 
>>>>>> On Apr 4, 2013, at 10:06 AM, Pampolini Matteo 
>>>>>> <matteo.pampol...@selex-es.com> wrote:
>>>>>>> Hello there,
>>>>>>> 
>>>>>>> I'm trying to write a simple application to discover ONVIF devices in 
>>>>>>> my network.
>>>>>> Very interesting…  Wasn't even aware of them.   If anyone would like to 
>>>>>> buy me one, I'd be more that happy to experiment more to get it 
>>>>>> working….   :-)
>>>>>> 
>>>>>> 
>>>>>>> Code is mainly based on ws_discovery sample with the following simple 
>>>>>>> difference:
>>>>>>> 
>>>>>>> List<EndpointReference> references = client.probe(new 
>>>>>>> QName("http://www.onvif.org/ver10/network/wsdl";<http://www.onvif.org/ver10/network/wsdl>,
>>>>>>>  "NetworkVideoTransmitter"));
>>>>>>> 
>>>>>>> I'm writing because it does not work, of course. I do not even see 
>>>>>>> (through WireShark) multicast packets being sent over my network 
>>>>>>> interface,
>>>>>>> can anyone please help me? Please note that ONVIF is based on 
>>>>>>> WS-Discovery version 2005/04.
>>>>>> There's two parts to this:  1) getting the UDP packets out    2) 
>>>>>> WS-Discovery 2005/04.
>>>>>> 
>>>>>> No idea what to do about (1).
>>>>> Does the ws-discovery sample work?    If you run the sample with 
>>>>> wireshark, does that get the packets?   I guess that would be the 
>>>>> starting point for looking at that.
>>>>> 
>>>>> (2) is definitely a big issue.  I'd likely try and use the CXF 
>>>>> transformation feature to map the namespaces and see if that works, but 
>>>>> it obviously won't work if (1) cannot be resolved.
>>>>> 
>>>>> 
>>>>> 
>>>>> --
>>>>> Daniel Kulp
>>>>> dk...@apache.org - http://dankulp.com/blog
>>>>> Talend Community Coder - http://coders.talend.com
>>>>> 
>>> 
>>> --
>>> Write once, compile everywhere
>>> Compile once, run somewhere...
>>> 
>>> 
>>> This email and any attachments are confidential to the intended recipient 
>>> and may also be privileged. If you are not the intended recipient please 
>>> delete it from your system and notify the sender. You should not copy it or 
>>> use it for any purpose nor disclose or distribute its contents to any other 
>>> person.
>>> Questa e-mail e tutti i suoi allegati sono da intendersi inviati in via 
>>> riservata all'effettivo destinatario e possono essere soggetti a 
>>> restrizioni legali. Se non siete l'effettivo destinatario o avete ricevuto 
>>> il messaggio per errore siete pregati di cancellarlo dal vostro sistema e 
>>> di avvisare il mittente. E' vietata la duplicazione, l'uso a qualsiasi 
>>> titolo, la divulgazione o la distribuzione dei contenuti di questa e-mail a 
>>> qualunque altro soggetto.
>>> 
>>> Prima di stampare questa comunicazione consideratene, per favore, l'impatto 
>>> ambientale
>>> Please consider the environment before printing this email
> 
> 
> --
> Write once, compile everywhere
> Compile once, run somewhere...
> 
> This email and any attachments are confidential to the intended recipient and 
> may also be privileged. If you are not the intended recipient please delete 
> it from your system and notify the sender. You should not copy it or use it 
> for any purpose nor disclose or distribute its contents to any other person.
> Questa e-mail e tutti i suoi allegati sono da intendersi inviati in via 
> riservata all'effettivo destinatario e possono essere soggetti a restrizioni 
> legali. Se non siete l'effettivo destinatario o avete ricevuto il messaggio 
> per errore siete pregati di cancellarlo dal vostro sistema e di avvisare il 
> mittente. E' vietata la duplicazione, l'uso a qualsiasi titolo, la 
> divulgazione o la distribuzione dei contenuti di questa e-mail a qualunque 
> altro soggetto.
> 
> Prima di stampare questa comunicazione consideratene, per favore, l'impatto 
> ambientale
> Please consider the environment before printing this email

-- 
Daniel Kulp
dk...@apache.org - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com

Reply via email to