6

我正在 Tomcat 上安装 cd_preview_webservice,它还安装了用于登台网站(用于 UI)和 cd_upload(部署到网站)的应用程序。

当我单击“更新预览”或“完成编辑”时,出现以下错误:

com/tridion/deployer/TCDLTransformer

这也将 tomcat 进程发送到 100% CPU 使用率。

我已重新阅读说明,但看​​不到我在哪里犯了错误。非常感谢任何帮助。

谢谢马克

我做了更多的挖掘工作,看起来我得到了一个会话预览 ID,保存在“PREVIEW_SESSIONS”表中的数据库中,但其他的都是空的。我觉得很奇怪。

我还发现以下 Web 服务调用“http://bbtrid04/WebUI/Models/SiteEdit/Services/Services.svc/GetPreviewToken”收到以下响应:

{"ExceptionDetail":null,"ExceptionType":null,"Message":"PermGen space","StackTrace":null}

并且本地主机日志文件包含以下错误:

07-Aug-2012 17:34:04 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet httpupload threw exception
java.lang.OutOfMemoryError: PermGen space
    at org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:199)
    at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:361)
    at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
    at com.tridion.transport.HTTPSReceiverServlet.handleUpload(HTTPSReceiverServlet.java:233)
    at com.tridion.transport.HTTPSReceiverServlet.doPost(HTTPSReceiverServlet.java:108)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Unknown Source)
07-Aug-2012 17:34:05 org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet httpupload threw exception
java.lang.VerifyError: (class: org/apache/commons/fileupload/disk/DiskFileItem, method: getUniqueId signature: ()Ljava/lang/String;) Illegal constant pool index
    at org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:199)
    at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:361)
    at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
    at com.tridion.transport.HTTPSReceiverServlet.handleUpload(HTTPSReceiverServlet.java:233)
    at com.tridion.transport.HTTPSReceiverServlet.doPost(HTTPSReceiverServlet.java:108)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:859)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Unknown Source)
4

1 回答 1

4

当 JVM 加载类时,它会将它们放入其堆的 PermGen 空间,默认为 64MB。

您显示的堆栈跟踪是您的 JVM 加载的类比它有空间的更多的放弃,并且肯定会解释它关于找不到 TCDLTransformer 的抱怨。

我通常有一个-XX:MaxPermSize=256msetenv.bat确保有足够的空间。根据您启动 Tomcat 的方式,您可能需要将其放在那里或放在服务运行程序参数中。

于 2012-08-07T16:55:49.547 回答