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

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

Reply via email to