[ mx4j-Bugs-926502 ] Cannot use port 80 for SOAPConnector

"SourceForge.net" <[email protected]>
Newsgroups gmane.comp.java.mx4j.devel
Message-ID <[email protected]>
Bugs item #926502, was opened at 2004-03-31 09:42
Message generated for change (Comment added) made by biorn_steedom
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=450647&aid=926502&group_id=47745

>Category: MX4J Tools
Group: Release 2.0.1
>Status: Closed
>Resolution: Fixed
Priority: 5
Submitted By: Nobody/Anonymous (nobody)
>Assigned to: Simone Bordet (biorn_steedom)
Summary: Cannot use port 80 for SOAPConnector

Initial Comment:
On the server side, I use the following statement to bind 
my SOAP 
        JMXServiceURL url = new JMXServiceURL
("service:jmx:soap://localhost:80/Kazeon"); 
and a trace given to me is 
        JMXConnectorServer started at: 
service:jmx:soap://localhost:80/Kazeon/id/1 

On the client side, I use the following statement to bind 
my SOAP 
        JMXServiceURL url = new JMXServiceURL
("service:jmx:soap://192.168.0.216:80/Kazeon/id/1"); 
and a trace given to me is 

AxisFault 

 faultCode: 
{http://schemas.xmlsoap.org/soap/envelope/}
Server.userException 

 faultSubcode: 

 faultString: java.io.IOException: Could not find 
ConnectionManager. Make sure a SOAPConnectorServer 
is in classloader scope and bound at this address 
service:jmx:soap://localhost/Kazeon/id/1 

Some more information 
1) Port 80 is available for me to use when I startup the 
server program and I saw the trace that I am listening 
to the connection 
2) If I change to use the port 8080 or port 81 (any 
other port), everything works fine. 
3) I see the same AxisFault if I am trying to reach a non-
existent web service when the web server is up. 

----------------------------------------------------------------------

>Comment By: Simone Bordet (biorn_steedom)
Date: 2004-07-19 10:41

Message:
Logged In: YES 
user_id=128193

Fixed in CVS, along with the changes to the
SOAPConnectorServer, as explained below.

----------------------------------------------------------------------

Comment By: Simone Bordet (biorn_steedom)
Date: 2004-04-04 00:08

Message:
Logged In: YES 
user_id=128193

The problem lies in the fact that URLs drop the default port
in the spec, so for http port 80 is dropped and for https
port 443 is dropped.
When TRANS_URL property is looked up, the transport protocol
('http') is stripped away and a JMXServiceURL is built from
the remaining string, but the port information has been
lost. This is a different JMXServiceURL that has been
registered, so there is no match found:
jmx:service:soap://blah/whatever versus
jmx:service:soap://blah:80/whatever.
I would not consider that a bug in JMXServiceURL.
I'd like to postpone resolution of this bug after 2.0.1,
where I also plan to propose a semplification of the
SOAPConnector URLs. We're riding the wave here, so I'd like
to clean up things before they settle too much.
More on mx4j-devel.

----------------------------------------------------------------------

Comment By: Brian Scully (btscully)
Date: 2004-04-03 21:23

Message:
Logged In: YES 
user_id=234750

The root problem, as far as I can tell, is that on line 821 of 
AxisServlet(doPost), 
javax.servlet.http.HttpUtils.getRequestURL(request) does not 
properly report the port parameter.  This is put in the 
MessageContext as property MessageContext.TRANS_URL.  
On line 77 of mx4j.tools.remote.soap.SOAPConnectionPivot, 
this very property is used to look up the JMXServiceURL.  This 
lookup fails to find the JMXServiceURL - causing the above 
error.

I get the problem no matter what the port is if I use the 4 
parameter JMXServiceURL constructor.  There must be a bug 
in JMXServiceURL.

----------------------------------------------------------------------

Comment By: superbonbon (superbonbon)
Date: 2004-03-31 10:11

Message:
Logged In: YES 
user_id=641892

Did you try to bind your server socket to another host name ?

I presume that your server and client are running on the same
host why don't your try :

JMXServiceURL url = new JMXServiceURL
("service:jmx:soap://192.168.0.216:80/Kazeon"); 

I think that if you start your server with "localhost" it could 
bind the server socket with 127.0.0.1 which could cause 
problem for external access or for socket bind with something 
else that 127.0.0.1 ( such as 192.168.0.216 )

just my 2 cents..


----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=450647&aid=926502&group_id=47745


-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=4721&alloc_id=10040&op=click
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.