Java 没有WAR文件的Servlet 3.0?

Java 没有WAR文件的Servlet 3.0?,java,tomcat,web-applications,jetty,servlet-3.0,Java,Tomcat,Web Applications,Jetty,Servlet 3.0,是否可以同时启动一个Web应用程序,包括: 1) 没有war文件: 2) 没有web.xml(即Servlet-3.0) 3) 从嵌入式web容器(例如,Tomcat或Jetty…)查看的答案。示例正在使用类。示例项目: 您仍然需要一个WEB-INF/WEB.xml,但是。这样就可以知道servlet支持级别和元数据完成标志 示例:空Servlet 3.0 web.xml 然后,您可以按照中的说明,以获取有关如何设置的示例 公共类嵌入我{ 公共静态void main(字符串[]args)

是否可以同时启动一个Web应用程序,包括:

1) 没有war文件:

2) 没有web.xml(即Servlet-3.0)

3) 从嵌入式web容器(例如,Tomcat或Jetty…)查看的答案。示例正在使用类。

示例项目:

您仍然需要一个
WEB-INF/WEB.xml
,但是。这样就可以知道servlet支持级别和元数据完成标志

示例:空Servlet 3.0 web.xml


然后,您可以按照中的说明,以获取有关如何设置的示例

公共类嵌入我{
公共静态void main(字符串[]args)引发异常{
int端口=8080;
服务器=新服务器(端口);
String wardir=“target/sample-webapp-1-SNAPSHOT”;
WebAppContext=新的WebAppContext();
context.setResourceBase(wardir);
setDescriptor(wardir+“WEB-INF/WEB.xml”);
context.setConfigurations(新配置[]{
新建AnnotationConfiguration(),新建WebXmlConfiguration(),
新建WebInfConfiguration(),新建TagLibConfiguration(),
新的PlusConfiguration(),新的MetaInfConfiguration(),
新的FragmentConfiguration(),新的EnvConfiguration()});
context.setContextPath(“/”);
setParentLoaderPriority(true);
setHandler(上下文);
server.start();
join();
}
}
我是如何做到的(嵌入式SpringMVC+Jetty,无web.xml无war文件):

使用Spring的
@WebAppConfiguration
MockServletContext
引导您的
WebApplicationContext


然后,只需通过Jetty的ServletContextHandler/ServletHolder机制注册您的
新DispatcherServlet(WebApplicationContext)
。轻松点

可以使用Jetty实现不需要WAR或任何XML的嵌入式服务器。您只需指定注释类的位置,添加额外的类路径

应该从一个可以命名为
Server.java的main调用此方法:

private static void startServer() throws Exception {
    final org.eclipse.jetty.server.Server server = new org.eclipse.jetty.server.Server(7070);
    final WebAppContext context = new WebAppContext("/", "/");
    context.setConfigurations(new Configuration[] { new AnnotationConfiguration(), new WebInfConfiguration() });
    context.setExtraClasspath("build/classes/main/com/example/servlet");
    server.setHandler(context);
    server.start();
    server.join();
}
我的
src
结构是:

-main
  -java
    -com.example
      -json
      -servlet
      -filter
      -util
      Server.java

我希望在Tomcat上看到类似的解决方案。

您可以在不使用容器的情况下“部署”JAX-WS服务!只是寻找一个简单的webapp设置来处理基本的浏览器http请求。。。(不是肥皂)不完全是我想要的;我实际上是在尝试以编程方式将webapp(不是简单的手动HttpServer)加载到嵌入式web容器中,而不必部署“war文件”,甚至不需要web.xml。具体地说,SpringWebApplicationContext…不起作用,我在尝试访问localhost:8080时遇到404错误(我在Eclipse中运行这个,简单地称为“Java应用程序”)。我还使用了最新的:(在该项目上使用Try命令行…$mvn clean install exec:exec我仍然需要应用此解决方案:使用WEB-INF外部显示的“AnnotationConfig()”/?此解决方案包作为WAR@fionbio它是一个分解的webapp目录。WAR是一个web存档。