[ 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