我一直在努力尝试在Windows 7上部署一个用java编写的简单的HelloWorld Web服务(以后需要在linux上运行),这已经困难了好几个小时。
我发现的大多数示例(来自一般地方,以及其他有关stackoverflow的问题)都无法使用或使用已弃用的版本的球衣和其他图书馆。
我的目标是在java中编写一个web服务,编写它应该很容易,部署它也是如此。它不需要在运行请求数量和性能(我的要求最低)方面有任何特殊之处
从我的研究中,我开始相信使用嵌入式网络服务的球衣应该是我想要的(如果有人知道更好,我也想听听它,这很难不是我的主要问题)在这个问题,但可能只是一个替代解决方案)
我遇到过这个问题:
它为您提供了一个工作项目,其中包含从maven运行jersey和jetty嵌入式服务器所需的依赖项(可以作为独立的jar运行,这正是我正在寻找的简单部署)
我克隆了这个例子,让一切都运行起来。我在将其导入eclipse时遇到问题,因此我在示例文件夹中使用了以下命令:
mvn -DoutputDirectory =。/ lib dependency:copy-dependencies
它将为您提供所需的maven的lib文件夹的副本, 然后我在构建路径中创建了一个带有这个lib文件夹的java项目,并且样本的源代码相同,并且都运行良好。 当我尝试获取此java项目并将其导出为可运行的jar(包含源文件选项!)时,会出现问题。 然后我可以使用java -jar来运行服务,但是当我尝试从浏览器访问它时(与我从eclipse运行它时使用的相同),它永远不会工作,我总是得到相同路由的错误404一秒钟从日食运行时。我无法弄清楚问题的根源或者eclipse的不同之处使得它以不同的方式运行。
答案 0 :(得分:1)
我已经找到了jar在没有工作的原因,而在eclipse中确实有效,这是因为我导入了一个重复的jar导致了问题。我在git样本中从maven获得的罐子里有2个重复的罐子,叫做hamcrest-all和hamcrest-core。从项目构建路径中删除其中一个修复了问题。
如果有人能回答我提出的另一个开放式问题,那么如果使用这样的球衣和码头是我的要求的最佳解决方案,我将很高兴听到它