我正在开发一个 Portlet struts 2 ejb3我配置了 EJB 项目,并在 Portlet 项目中混淆了操作类和支柱.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: com.esprit.metier.AdressDao from BaseClassLoader@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
你可以帮我吗?
ClassNotFound 条件可能由两个问题导致:
- 类
- 装入器抱怨的类不在类路径上 类加载器抱怨的类引用了
- 另一个由于某种原因无法加载的类(例如,它不在类路径上或引用其他不是......
所以:检查你的类路径:com.esprit.metier.AdressDao
在那里吗?它的超类(整个层次结构)和它实现的所有接口?所有成员和引用的类(另请参阅方法签名)。
此外,如果这确实是 Portlet 的 jsp,则不应包含 <html>
、 <head>
和 <body>
,因为这是门户的业务,可以将这些添加到页面中。您可能还需要在主题或 liferay-portlet 中包含您的 css.xml在<header-css>
部分(但这不会影响您的未找到类体验,这只是一般的门户建议)