Hi,
Your thinking was correct :-) I set the httpj config to have the services bind 
to 0.0.0.0 but then specified the eth0 ip address in the jaxws:endpoint / jaxws 
factory and the services are available on localhost as well but the wsdl 
location is set to the eth0 ip - awesome thanks 

Sent from my iPhone

On Dec 18, 2010, at 8:49, Daniel Kulp <[email protected]> wrote:

> On Thursday 16 December 2010 7:37:39 pm Jason Pell wrote:
>> Hi,
>> 
>> I discovered if I disabled the following in the applicationContext.xml
>> 
>> <httpj:engine-factory>
>>        <httpj:engine port="9449">
>>        </httpj:engine>
>>    </httpj:engine-factory>
>> 
>> Then the service would no longer be bound to 0.0.0.0, I now get:
>> 
>> selectchannelconnec...@localhost:9449
> 
> Ah.   OK.   Now I understand what's happening.   :-)
> 
> When you configure an engine for a port, there is a "host" attribute that you 
> can set to tell it which host to bind to.   If unset, it uses "all".    
> 
> If there is NOT a configuration, it uses the host specified by the URL that 
> is 
> passed in at publish.   
> 
> I THINK you can configure the engine like above, but then pass in pretty much 
> any hostname (like the "public" host name of the machine) and the service 
> would start up on all IP's, but the returned wsdl would contain the public 
> URL/name.
> 
> 
> Dan
> 
> 
>> 
>> On Fri, Dec 17, 2010 at 7:31 AM, Jason Pell <[email protected]> wrote:
>>> I could see binding to 0.0.0.0 automatically as a security issue I guess?
>>> 
>>> Sent from my iPhone
>>> 
>>> On Dec 17, 2010, at 7:20, Daniel Kulp <[email protected]> wrote:
>>>> On Thursday 16 December 2010 3:04:52 pm Jason Pell wrote:
>>>>> So your tests if I understand it - none of the services are available
>>>>> on any network interface except the local loop back?
>>>> 
>>>> That's what I'm seeing with both 2.2.12 and 2.3.1 (and trunk) if the
>>>> address is set to http://localhost:8080.
>>>> 
>>>>> So should I be using two endpoints for each service - one for localhost
>>>>> and one for the external network interface
>>>> 
>>>> Look like it, yea.
>>>> 
>>>>> My current behavior of jaxws:endpoint being deployed to 0.0.0.0 is
>>>>> unexpected?
>>>> 
>>>> Well, to be honest, I had THOUGHT that that deploying to 0.0.0.0 was the
>>>> default behavior unless a spring config configured the port to ONLY go
>>>> on a certain host.   I'm not sure why it's NOT doing that, but it
>>>> doesn't seem to be for me with 2.2.12 so it doesn't seem to be a
>>>> "regression", but I'm also not sure if its working as designed.      I
>>>> could actually go either way with it.   :-)
>>>> 
>>>> Dan
>>>> 
>>>>> Sent from my iPhone
>>>>> 
>>>>> On Dec 17, 2010, at 5:57, Daniel Kulp <[email protected]> wrote:
>>>>>> Well, I'm not able to reproduce the jaxws:endpoint behavior you
>>>>>> describe. I
>>>>>> 
>>>>>> updated a test to have:
>>>>>>  <bean id="ServiceImpl" class="org.apache.cxf.cxf1332.Cxf1332Impl"/>
>>>>>>  <jaxws:endpoint id="cxf1332" implementor="#ServiceImpl"
>>>>>> 
>>>>>>                  address="http://localhost:9000/Cxf1332"; />
>>>>>> 
>>>>>>  <bean id="ServiceFactory"
>>>>>> 
>>>>>>       class="org.apache.cxf.jaxws.JaxWsServerFactoryBean">
>>>>>> 
>>>>>>      <property name="serviceBean" ref="ServiceImpl" />
>>>>>>      <property name="start" value="true" />
>>>>>>      <property name="address" value="http://localhost:9001/Cxf1332"/>
>>>>>> 
>>>>>>  </bean>
>>>>>> 
>>>>>> and then started the factory.   I see:
>>>>>> 
>>>>>> INFO: Started selectchannelconnec...@localhost:9000
>>>>>> .....
>>>>>> INFO: Started selectchannelconnec...@localhost:9001
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>> Now, I CAN reproduce your issue of the above then only being available
>>>>>> on localhost.    However, I don't think this is any different than
>>>>>> with 2.2.x? I just ran the java_first_jaxws with 2.2.12 server and I
>>>>>> get:
>>>>>> 
>>>>>> INFO: Started selectchannelconnec...@localhost:9000
>>>>>> and a netstat -an showed it only on localhost and trying to do a get
>>>>>> on non- localhost doesn't work.
>>>>>> 
>>>>>> 
>>>>>> Dan
>>>>>> 
>>>>>> On Wednesday 15 December 2010 8:24:46 am Jason Pell wrote:
>>>>>>> Hi,
>>>>>>> 
>>>>>>> Prior to 2.3.0 this all worked fine...
>>>>>>> 
>>>>>>> I have a mixture of java first web services I am deploying using both
>>>>>>> jaxws:endpoint and more directly using
>>>>>>> org.apache.cxf.jaxws.JaxWsServerFactoryBean
>>>>>>> 
>>>>>>> When I use a jaxws:endpoint and specify an address of for example:
>>>>>>> 
>>>>>>> http://localhost:9449/SomeService
>>>>>>> 
>>>>>>> The service is available on ALL network interfaces because CXF seems
>>>>>>> to deploy it to 0.0.0.0.  However when I manually construct a service
>>>>>>> using springs beans and JaxWsServerFactoryBean (a subset is included
>>>>>>> here):
>>>>>>> 
>>>>>>> <bean id="ServiceFactory"
>>>>>>> class="org.apache.cxf.jaxws.JaxWsServerFactoryBean"> <property
>>>>>>> name="serviceBean" ref="ServiceImpl" />
>>>>>>> 
>>>>>>>      <property name="start" value="false" />
>>>>>>> 
>>>>>>>             <property name="http://localhost:9448/SomeOtherService";>
>>>>>>> 
>>>>>>> </bean>
>>>>>>> 
>>>>>>> It only gets deployed to localhost.
>>>>>>> 
>>>>>>> The logs from jetty are different too:
>>>>>>> 
>>>>>>> org.eclipse.jetty.util.log  - Started
>>>>>>> selectchannelconnec...@localhost:9448 org.eclipse.jetty.util.log  -
>>>>>>> Started [email protected]:9449
>>>>>>> 
>>>>>>> Any ideas why this is so.  At the moment I have modified my spring
>>>>>>> beans to specify
>>>>>>> <property name="http://0.0.0.0:9448/SomeOtherService";>
>>>>>>> 
>>>>>>> but its nasty, especially as the WSDL now contains this 0.0.0.0
>>>>>>> address which looks particularly nasty and causes real problems for
>>>>>>> those  trying to load the WSDL into soapui on a remote server.
>>>>>>> Ideally the wsdl should contain the address of the network interface
>>>>>>> it was requested from.
>>>>>>> 
>>>>>>> But if I can just get it so that it deploys to all network interfaces
>>>>>>> without me having to specify 0.0.0.0 in the address that would be
>>>>>>> ideal.
>>>>>>> 
>>>>>>> I have reasons why I cannot use jaxws:endpoint so please don't
>>>>>>> suggest that :-)  I just need to know what jaxws:endpoint is doing
>>>>>>> differently and replicate that in my spring contexts
>>>>>>> 
>>>>>>> Thanks
>>>>>>> Jason
>>>> 
>>>> --
>>>> Daniel Kulp
>>>> [email protected]
>>>> http://dankulp.com/blog
> 
> -- 
> Daniel Kulp
> [email protected]
> http://dankulp.com/blog

Reply via email to