我在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("/")
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 ...
}
}
该项目在我的Eclipse中本地运行,它也启动和停止Tomcat。在我的项目旁边有一个服务器。
我已经根据Eclipse中的运行配置检查了服务器和部署路径,它们应该匹配。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>sustainableDataPlatform.org</groupId>
<artifactId>my-project</artifactId>
<!-- <version>0.1.1</version>-->
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<name>MY PROJECT</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<version.jersey>2.32</version.jersey>
</properties>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.1</version>
<configuration>
<release>11</release>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.3</version>
<configuration>
<!-- https://stackoverflow.com/a/33390519/2092322 annotations instead of web.xml -->
<failOnMissingWebXml>false</failOnMissingWebXml>
<archive>
<manifest>
<addClasspath>true</addClasspath>
</manifest>
</archive>
<warName>my-project</warName>
</configuration>
</plugin>
</plugins>
</build>
<dependencies>
<!-- https://mvnrepository.com/artifact/javax.ws.rs/javax.ws.rs-api -->
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.1.1</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.inject</groupId>
<artifactId>jersey-hk2</artifactId>
<version>${version.jersey}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-server</artifactId>
<version>${version.jersey}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-servlet</artifactId>
<version>${version.jersey}</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-multipart</artifactId>
<version>${version.jersey}</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.30</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.14.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.14.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.14.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-web</artifactId>
<version>2.14.0</version>
<scope>runtime</scope>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20151123</version>
</dependency>
<dependency>
<groupId>org.neo4j.driver</groupId>
<artifactId>neo4j-java-driver</artifactId>
<version>4.2.0</version>
</dependency>
<!-- maybe use jakarta mail? javax.mail 1.4.x? -->
<dependency>
<groupId>com.sun.mail</groupId>
<artifactId>javax.mail</artifactId>
<version>1.6.2</version>
</dependency>
<dependency>
<groupId>javax.xml.ws</groupId>
<artifactId>jaxws-api</artifactId>
<version>2.3.1</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>3.4.1</version>
</dependency>
</dependencies>
</project>
# 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.
所以我需要:
这将更改.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">
- <attribute name="owner.project.facets" value="java"/>
+ <attribute name="maven.pomderived" value="true"/>*
<projects>
+ <project>Servers</project>
</projects>
我很确定我在某个地方有一个错误的配置,除了Eclipse之外,我希望使用MVN
。但我到底做错了什么?
需要更多的配置材料吗?
最关键的变化是
javase-11
(请参见屏幕截图1)MVN clean package
并让服务器与servlet项目一起运行,因为源代码会创建相同的结果。另请参见此SO答案。我无法将我的项目添加到Eclipse中的服务器-为什么? 我安装了所有必要的工具(Web Dev、Java EE、服务器适配器和Tomcat本身,一切) 我配置了运行时环境,将所有Java版本调整为JDK 6(因为它应该在Tomcat 6上运行),但是在创建新服务器时,我可以添加资源的对话框的左侧仍然是空的。 我还能试什么? PS:我在Windows上使用的是Eclipse v4.2 (Juno)
环境 : Windows Eclipse Luna Service Release 2 (4.4.2) Tomcat 8 JDK 8 当我尝试使用
我尝试在server.xml中添加一个新的docbase,以便在我的tomcat服务器中定义一个上传目录。然而,如果我将它添加到我的独立tomcat服务器上,它会像魔咒一样工作: 但是在我的本地eclipse tomcat服务器配置中它不起作用。我的发布操作是“更新上下文路径”,我在服务器选项卡中使用“工作区元数据”。 知道我哪里做错了吗?
问题内容: 我已经阅读了很多SO和Google链接。 我还没有弄清楚如何正确地将图像添加到eclipse gui项目中,这样系统可以识别找到它。我知道有一些关于CLASSPATH的小技巧,但做起来可能并不难。 让我先描述一下我在做什么…(如果有人可以纠正我,我将不胜感激。) 这是我的方法。 我使用“导入向导”(右键单击,“导入”,“常规”,“文件”)将图像添加到我称为“ / resources”的
问题内容: 我设法下载了Eclipse Helios的svn插件。然后,我设法将一个新的存储库添加到我选择的驱动器中。但是我看不到如何知道已经创建的项目?有人可以告诉我我该怎么做。 谢谢 问题答案: 就像是: 右键单击您的项目。 选择团队->共享项目。 该向导将指导您进行初始导入。 实际上,Initial Import不会将任何代码放入项目存储库中,而只是将项目详细信息放入仓库中。因此,您需要执行