2014-05-23 157 views
0

我正在构建一个包含spymemcached客户端的代码的库。这被称为CacheClient。这是一个简单的Java项目。我把spymemcached.jar放到它的lib文件夹中。Eclipse项目vs构建路径

这里是如何的样子,还可以看到构建路径设置:

库:CacheClient项目:cacheclient.jar

  • LIB
    • spymemcached.jar

Java构建路径/库标签: spymemcached.jar - CacheClient/lib目录/ spymemcached.jar

我在做什么是我建立这是使用这个库一个简单的Java Web项目。

Web应用程序:ServiceWebApp项目:servicewebapp.war

  • 的WebContent
    • WEB-INF
      • LIB
        • EMPTY

Java构建路径/ Projects标签:CacheClient

所以,我的webapp的构建路径设置为使用CacheClient项目。我将cacheclient.jar复制到tomcat的lib目录中并部署了ServiceWebApp。

当我运行web应用程序时,它失败,因为它说我的CacheClient代码正在寻找spymemcached类(ClassNotFoundException)。

我可以通过将spymemcached.jar放入tomcat的lib目录来解决这个问题,但如果还有其他的解决方案,它会很棒。

任何建议赞赏。

感谢,

回答

3

使得LIB提供您的web应用程序将是把的lib的jar到WEB-INF/lib目录的最简单的方法。

如果你不想做手工,检查有关这可怎么自动此链接:Adding 3rd party jars to WEB-INF/lib automatically using Eclipse/Tomcat

+0

确定这是解决方案。我将cacheclient.jar和spymemcached.jar放入了Web应用程序的WEB-INF/lib目录中。然而,spymemcached.jar也在cacheclient.jar的lib目录中。正如我所看到的,从库中的jar引用类不是本地支持的,所以需要One-Jar或任何其他包装。 –

1

在你的情况cacheclient.jar对spymemcached.jar的依赖。但是,当您构建cacheclient.jar时,它不会与spymemcached.jar一起打包。所以只需复制cacheclient。Tomcat/lib文件夹中的jar是不够的。首先,将jar文件复制到tomcat lib文件夹中并不是一个好习惯。

你可以做的是复制你的罐子 servicewebapp.war> WenContent> WEB-INF> lib应该工作。