weblogic ADF中的固定/非理性java.lang.ClassNotFoundException,JAR中的类

时间:2015-04-09 16:54:16

标签: java jar oracle-adf jdeveloper weblogic12c

我是ADF / JDeveloper的新手,并且正在努力应对典型的“未找到的课程” - 希望有一个技巧可以解决这个问题吗?

使用:JDeveloper 12c和集成的Web逻辑服务器。

情况:Servlet在web.xml中注册,但该类在JAR中

<servlet>
    <description>..</description>
    <servlet-name>ABCHandlerServlet</servlet-name>
    <servlet-class>com.mine.ControlServlet</servlet-class>
    <init-param>
    <param-name>licenseKey</param-name>
    <param-value>123</param-value>
    </init-param>
</servlet>
...
<servlet-mapping>
    <servlet-name>ABCHandlerServlet</servlet-name>
    <url-pattern>/servlet/GaugeServlet/*</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>ABCHandlerServlet</servlet-name>
    <url-pattern>/mapproxy/*</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>resources</servlet-name>
    <url-pattern>/bi/*</url-pattern>
  </servlet-mapping>
  <servlet-mapping>
    <servlet-name>ABCHandlerServlet</servlet-name>
    <url-pattern>*.ABC</url-pattern>
</servlet-mapping>  
无法找到部署时报告的

com.mine.ControlServlet位于JAR文件中。

JAR文件位于

ViewController / Application Sources / META-INF / lib / myjar.jar

我已经三次检查过该类是否在JAR中。

我也尝试将JAR添加到项目类路径中,虽然这似乎没有必要(无论如何都没有任何区别)。

FWIW JAR / Servlet在非ADF环境中多次使用,所以我怀疑问题是在JAR中。

2 个答案:

答案 0 :(得分:2)

从Project Properties-&gt; Libraries和Classpath中删除JAR,然后读取它修复了问题。

时间浪费了。

感谢florinmarcus,1up。

答案 1 :(得分:1)

您的WAR中可能没有打包库。将库添加到ViewControler库只是故事的一半。您可能想要检查您的WAR部署配置文件是否也打包了库:

右键单击ViewController - &gt;项目属性 - &gt;部署 - &gt;选择右侧的现有Web模块 - &gt;编辑(图标) - &gt; WEB-INF / lib - &gt;贡献者 - &gt;确保在部署过程中检查库。

您可以通过右键单击View Controller&gt;来仔细检查WAR内容。项目属性 - &gt;选择Web模块 - &gt;部署到WAR。