这是我得到的错误。
com.sun.jersey.api.container.ContainerException: A root resource, class
org.apache.hadoop.hdfs.server.datanode.web.resources.DatanodeWebHdfsMethods,
has a non-unique URI template /
我正在使用Hadoop和REST API。
这就是我在web.xml中初始化REST API的方法
<servlet>
<servlet-name>ServletAdaptor</servlet-name>
<servlet-class>
com.sun.jersey.server.impl.container.servlet.ServletAdaptor</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>ServletAdaptor</servlet-name>
<url-pattern>/RESTMOB/CALL/*</url-pattern>
</servlet-mapping>
我已经尝试删除Hadoop JAR并且它可以工作,但是我需要那些Hadoop JAR,所以它的替代方案是什么。提前致谢
答案 0 :(得分:1)
可能发生的事情是你移除的jar中的一些.class文件也存在于其他jar中 - 这在java中很常见,并且可能会在重新启动应用程序时产生问题,并且可能会在重新启动时加载不同的版本。我会打开罐子并搜索重复的类文件并从一个罐子中删除它们并进行测试。您可以将jar解压缩到文件系统并搜索所有.class文件并按名称排序。尽可能消除重复的.class文件,即使它需要一些繁琐的工作,总是一个好主意