除了使用mvn clean软件包之外,如何在Eclipse中以稳定的方式向Tomcat服务器添加servlet项目
我在Tomcat中运行了一个非常直接的servlet,它的开头大致如下除了使用mvn clean软件包之外,如何在Eclipse中以稳定的方式向Tomcat服务器添加servlet项目,eclipse,maven,tomcat,Eclipse,Maven,Tomcat,我在Tomcat中运行了一个非常直接的servlet,它的开头大致如下 import javax.ws.rs.ApplicationPath; import org.glassfish.jersey.server.ResourceConfig; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import security.AuthenticationFilter; @ApplicationPath("/"
import javax.ws.rs.ApplicationPath;
import org.glassfish.jersey.server.ResourceConfig;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import security.AuthenticationFilter;
@ApplicationPath("/")
public class MyMain extends ResourceConfig {
private final static Logger logger = LoggerFactory.getLogger(MyMain.class);
private Map<String,Map<String,String>> myConfig = null;
public MyMain() {
final String myEnv = System.getProperty("myEnvironment");
// doing more stuff, registering resources ...
}
}
因此,我需要:
.classpath
:
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/java-11-oracle">
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11">
我很确定我在某个地方有一个错误的配置,除了Eclipse之外,我还想使用mvn
。但我到底做错了什么
还需要配置吗?最关键的更改是
JavaSE-11
(参见屏幕截图1)mvn clean package
让服务器与servlet项目一起运行,因为源代码创建了相同的结果。另见非常简短的回答。真相就在pom里。M2E从POM创建信息…为什么不遵循约定并通过
WebContent
更改默认值呢。。。将内容放入src/main/webapp
…类路径更改为对JavaSE-11的抽象执行环境引用;它更便于携带,而且你无论如何都应该使用它。.project
更改是因为您修改了项目引用,这在这里没有任何用处。您应该转到服务器属性页以实际影响使用Eclipse的“在服务器上运行/调试”功能运行项目的服务器。您的Eclipse是否识别该项目是Maven项目?你是怎么进口的?若确实如此,那个么Eclipse应该读取您的pom.xml以确定许多项目设置。如果不是,这可能是许多问题的原因。我也不确定是否从“属性”菜单将项目与服务器关联起来。我通常只需在Eclipse的服务器视图/选项卡中右键单击服务器,然后单击“添加/删除应用程序”或类似的内容。@admdev该项目从一开始就已更改为maven项目,因此pom.xml反映在Eclipse设置中(project->settings->maven->Update project)。我仍然不知道为什么servlet没有在Tomcat中启动。Tomcat跑得很好。(我使用的是'src/main/webapp'而不是'WebContents'和std Java JavaSE-11执行环境。@不管我是在servlet项目中引用服务器还是反过来引用服务器,Tomcat运行良好,但servlet根本无法识别/启动。
# server.xml in tmp folder after starting the server (*run on server*)
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
<Context docBase="/home/myname/work/sdp/eclipse/.metadata/.plugins/org.eclipse.wst.server.core/tmp0/webapps/ROOT" path="" reloadable="false"/>
<Context docBase="sdp-api" path="/sdp-api" reloadable="true" source="org.eclipse.jst.jee.server:sdp-api"></Context>
</Host>
# same part of server.xml in Server folder of server project in Eclipse after having the servlet project configured for (added to) server
<Host appBase="webapps" autoDeploy="true" name="localhost" unpackWARs="true">
<Context docBase="sdp-api" path="/sdp-api" reloadable="true" source="org.eclipse.jst.jee.server:sdp-api"/>
</Host>
Publishing failed with multiple errors
File not found: /path/to/my-project/target/m2e-wtp/web-resources/META-INF/MANIFEST.MF.
File not found: /path/to/my-project/target/m2e-wtp/web-resources/META-INF/MANIFEST.MF.
File not found: /path/to/my-project/target/m2e-wtp/web-resources/META-INF/maven/mainPackage/my-project/pom.properties.
File not found: /path/to/my-project/target/m2e-wtp/web-resources/META-INF/maven/mainPackage/my-project/pom.properties.
File not found: /path/to/my-project/target/m2e-wtp/web-resources/META-INF/maven/mainPackage/my-project/pom.xml.
File not found: /path/to/my-project/target/m2e-wtp/web-resources/META-INF/maven/mainPackage/my-project/pom.xml.
- <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/java-11-oracle">
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-11">
- <attribute name="owner.project.facets" value="java"/>
+ <attribute name="maven.pomderived" value="true"/>*
<projects>
+ <project>Servers</project>
</projects>