错误jsp 154 java.lang.classnotfound

时间:2012-07-05 10:18:34

标签: jboss struts2 ejb liferay

我正在开发一个portlet struts 2 ejb3 我配置了项目ejb,在portlet项目中我配置了动作类和struts.xml

    <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
 <package namespace="/view" extends="struts-portlet-default" name="view">
     <!-- If no class attribute is specified the framework will assume success and
        render the result index.jsp -->
        <!-- If no name value for the result node is specified the success value is the default -->
  <action name="index">
   <result>/html/view/index.jsp</result>
  </action>

  <action name="create" method="ajouterOUmodifier" class="com.esprit.action.AdressAction">
          <result name="success" type="redirect">index</result>
           <result name="input">/html/view/ajoutAdress.jsp</result>
    </action>

    </package>
</struts>

和jsp文件

    <%@ page contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sx" uri="/struts-dojo-tags" %>
<html>
<head>
    <link href="<s:url value="/resources/main.css"/>" rel="stylesheet" type="text/css"/>
</head>
<body>
<s:form action="create" method="post">

 <s:textfield name="adress.nom" label="Firstname"/>
  <s:textfield name="adress.prenom" label="Lastname"/>
                <s:submit value="ok" />
        </s:form>
</body>
</html>

但是当我执行项目时会显示错误:

  

ERROR [jsp:154] java.lang.ClassNotFoundException:来自BaseClassLoader的com.esprit.metier.AdressDao @ 33b2c7a8 {VFSClassLoaderPolicy @ 1e52011c {name = vfsfile:/ D:/android/jboss-5.1.0.GA/server /default/deploy/DepartmentWEB-portlet.war/ domain = ClassLoaderDomain @ 69ac5f83 {name = vfsfile:/ D:/android/jboss-5.1.0.GA/server/default/deploy/DepartmentWEB-portlet.war/ parentPolicy = AFTER_BUT_JAVA_BEFORE parent = ClassLoaderDomain @ 5183a17c {DefaultDomain}} roots = [MemoryContextHandler @ 432465105 [path = context = vfsmemory:// 5c4o13m-e9nqdk-h49ogxti-1-h49ohbp5-2a

你可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

ClassNotFound条件可能来自两个问题:

  1. 类加载器抱怨的类不在类路径
  2. 类加载器抱怨的类引用了由于某种原因无法加载的另一个类(例如,它不在类路径上或引用其他不是......)
  3. 所以:检查你的类路径:那里有com.esprit.metier.AdressDao吗?它的超类(整个层次结构)和它实现的所有接口?所有成员和引用的类(也参见方法签名)。

    此外,如果这确实是一个portlet的jsp,它不应该包含<html><head><body>,因为这是门户将这些添加到页面的业务。您可能还需要在主题中或在<header-css>部分的liferay-portlet.xml中包含您的CSS(但这不应该影响您的类未找到的体验,它只是一般的门户建议)