Java 在指定端口上注册Servlet
我想在指定的端口上注册一个ServLet,因为我的端口80被我需要的其他程序使用,我可以关闭并杀死它们。 这是我注册servlet的代码:Java 在指定端口上注册Servlet,java,servlets,osgi,Java,Servlets,Osgi,我想在指定的端口上注册一个ServLet,因为我的端口80被我需要的其他程序使用,我可以关闭并杀死它们。 这是我注册servlet的代码: HttpService httpService = (HttpService) super.addingService(reference); if (httpService == null) return null; try {
HttpService httpService = (HttpService) super.addingService(reference);
if (httpService == null)
return null;
try {
System.out.println("Registering servlet at /simple");
httpService.registerServlet("/simple", new SimpleServlet(), null,
null);
} catch (Exception e) {
e.printStackTrace();
}
不,这只能在容器级别完成。哪个是你的应用服务器?对于tomcat,请查看的端口参数。您肯定只能设置HttpService本身的端口,但默认情况下它永远不会尝试使用端口80。将您80岁时拥有的服务器配置为将某些部分代理给OSGi服务是一个好主意吗 这东西比看起来要复杂一些。让所有的网络工具(尤其是像过滤器这样的更高级的工具)正常工作并不是那么容易 PaxWeb让它变得简单多了。(包含Jetty及其所有依赖项,因此您可以删除当前使用的Jetty)
可以使用OSGi配置来配置端口,但默认情况下它位于8080上。AFAIK,您不能注册servlet的端口。端口分配给应用程序(即应用程序服务器)。除非OSGI使用该端口启动新服务器,否则您必须在app server上进行配置。当我执行此代码时,servlet注册时没有出现错误,但我的端口80正在被另一个程序使用。是否可以自动将servlet注册到另一个端口上?如果是,我应该如何知道端口号?它将出现在应用程序服务器的一个配置文件中。在tomcat中,它将是server.xml。我不知道什么是我的应用服务器。我只是下载osgi插件并在windows上的eclipse中使用它。我认为它是一个内置jetty服务器,随osgi插件一起提供。最好下载tomcat。在Eclipse服务器选项中将其注册为web服务器,并在该服务器中部署您的web应用程序(servlet)。之后,您可以在Tomcat中进行前面提到的配置above@ChristianSchack是的,它使用jetty server。我必须在jetty server上配置此项目。我应该怎么做?使用pax web,甚至可以将应用程序(而不是servlet)绑定到特定于“虚拟主机”的端口。