Http GET请求在泽西岛默认端口上不起作用(80)

时间:2013-10-29 12:38:13

标签: java http jersey

我有两个java webapp,比如MyApp和AuthEngine。 AuthEngine是一种常见的身份验证应用程序,可供任何其他应用程序使用。 当用户登录MyApp时,用户凭据将发送到AuthEngine进行验证。我正在使用jersey客户端来调用AuthEngine的服务(不使用任何REST功能,使用普通的Java Servlet开发AuthEngine)。

WebResource resource =  null;
resource = authClient.resource("http://localhost:8080/authengine/authenticate");
queryParam = new MultivaluedMapImpl();
queryParam.add("username", username);
queryParam.add("password", password);
clientResponse = resource.queryParams(queryParam).get(ClientResponse.class);
response = clientResponse.getEntity(String.class);

这里一切正常。 MyApp从authenticngine调用身份验证servlet并返回状态。

但是,如果我使用80作为myapp和authengine的端口,而不是使用端口8080,一切都会中断

当我使用端口80时,不会调用对authEngine的身份验证请求,从而导致响应中出现空值。

我尝试使用不同的端口号,它似乎在80以外的所有其他端口中都能正常工作。 有人可以帮我找出这个奇怪问题的原因吗?我在我的智慧结束!

1 个答案:

答案 0 :(得分:-1)

1)您的两个Web应用程序都说MyApp和Auth Engine无法拥有相同的实例,即(端口号)
2)如上所述,将Auth引擎设为Web服务(平针织) 3)将服务(Auth Engine)指向Myapp,即将URL映射到Myapp Web ...
4)在http 1.1协议中检查端口号为80的Tomcat中的server.xml文件 5)您不需要在url中明确指定端口号80,因为http的默认端口号是80而https是443