2013-04-01 9 views
0

Я работал над JSF-приложением под Tomcat. В том же проекте я сконфигурировал, также используя PHP, как описано в сайте Caucho Resin (Link)Как включить PHP-скрипт в страницу JSF под tomcat или смолой?

Но когда я пытаюсь включить отдельный рабочий скрипт PHP на страницу JSG, страница не работает.

У меня есть test.php с:

<?php 
print "hello world"; 
?> 

в web.xml Я добавил:

<servlet> 
    <servlet-name>Quercus Servlet</servlet-name> 
    <servlet-class>com.caucho.quercus.servlet.QuercusServlet</servlet-class> 
    <init-param> 
     <param-name>license-directory</param-name> 
     <param-value>WEB-INF/licenses</param-value> 
    </init-param> 
</servlet> 

<servlet-mapping> 
    <servlet-name>Quercus Servlet</servlet-name> 
    <url-pattern>*.php</url-pattern> 
</servlet-mapping> 

Также добавлены resin.jar в web-inf/lib

, когда я звоню test.php непосредственно он работает, но когда я попробуйте включить вот так:

<ui:include src="test.php"/> 

или написать PHP-код прямо на странице JSF.

Вот исключение:

javax.faces.view.facelets.FaceletException: Error Parsing /test.php: Error Traced[line: 5] Premature end of file. 
    at com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:429) 
    at com.sun.faces.facelets.compiler.SAXCompiler.doCompile(SAXCompiler.java:403) 
    at com.sun.faces.facelets.compiler.Compiler.compile(Compiler.java:124) 
    at com.sun.faces.facelets.impl.DefaultFaceletFactory.createFacelet(DefaultFaceletFactory.java:319) 
    at com.sun.faces.facelets.impl.DefaultFaceletFactory.access$100(DefaultFaceletFactory.java:92) 

Любое тело пытались такого рода эксперимент?

ответ

1

Когда вы вызываете свою страницу PHP напрямую, она не обрабатывается вашим Quercus Servlet без каких-либо проблем. Но когда вы вызываете вашу страницу PHP, включенную внутри страницы, отличной от PHP, например JSP (или JSF или XHTML или другое расширение файла), ваш Quercus Servlet не обрабатывает его, тем самым давая вам эти ошибки.

Вы можете сделать комбинацию разбора страницы с помощью Servers Quercus и/или Faces Servlet (я не проверял это, поэтому я не уверен, что он будет работать). Другим вариантом может быть не использование скриптов PHP непосредственно на ваших страницах JSP/JSF, а использование их для обработки действий, то есть <form action="test.php">.

Обратите внимание, что это не проблема JSF, ни Tomcat, ни Resin, ни Caucho, это проблема с сервлетом или еще хуже, проблема с дизайном. Это приводит к вопросу: зачем вам такой странный дизайн в вашем веб-приложении?

+0

Непосредственно не нужно использовать php в приложении JSF, но я пытаюсь это сделать, потому что, если ваше приложение станет большим, возможно, вам понадобятся некоторые скрипты php для конкретных проблем, но на самом деле это просто тест. –

+0

Я действительно не понимаю вашу точку зрения: * если ваше приложение стало большим, возможно, вам понадобятся некоторые скрипты php для конкретных проблем *. Когда у вас есть одна из этих * конкретных проблем * приходят сюда и публикуют ее, я уверен, что есть решение с использованием Java –