我尝试在 Glassfish 中部署时代存档,使用带有 DTD 字符串的非常简单的 sun-ej-jar 文件:
<!DOCTYPE sun-ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 9.1.1 EJB 3.0//EN" "http://www.sun.com/software/appserver/dtds/sun-ejb-jar_3_0-1.dtd">
二、报错:
“Error occurred during deployment: Exception while deploying the app [app]: Unable to locate the DTD to validate your deployment descriptor file [META-INF/sun-ejb-jar.xml] in archive [app-ejb-1.2.0-SNAPSHOT_jar]. Please make sure the DOCTYPE is correct (no type in public ID or system Id) and you have proper access to the internet.. Please see sever.log for more details.”
笔记:
- 装有 glassfish 的计算机无法访问 Internet。
- 我将 sun-ejb-jar_3_0-1.dtd 放在 glassfish\lib\dtds 文件夹中。
- DTD 字符串与 sun-ejb-jar_3_0-1.dtd 中的完全相同(第 49 行)。
- 如果我将“Application Server 9.1.1”替换为“Application Server 9.0”,则应用程序部署没有任何错误!
我使用 glassfish 3.1.2
有人知道问题吗?
PS server.log 包含带有 DTD 验证错误的堆栈跟踪,没有任何用处。