2010-03-15 7 views
0

Я бегу Jetspeed портал, который содержит различные приложения портлетов и наткнулись вопрос после недавней переустановки, где некоторые из портлетов вернутсяJetspeed нуль PortletDefinition

Не удается передать нулевой PortletDefinition к PortletEntity

Любая идея, что вызывает эту проблему? Я немного исследовал, и кажется, что jetspeed запускает процесс при добавлении новых портлетов, где он создает сопоставления в своей БД (дерби в моем случае). Если это не завершено, похоже, это вызывает эту проблему. Правильно ли мое предположение? Если да, как я могу перезапустить этот процесс?

Большое спасибо

ответ

1

Это исключение может быть вызвано не соответствующее имя портлета на на вашей странице. Это часто происходит, когда приложение портлета развертывается с одним именем, но затем фрагмент страницы ссылается на другое имя, например, на вашей странице у вас есть:

<fragment id="1234" type="portlet" name="myApp::myPortlet"> 

и при развертывании войны файл, он назван в честь Например, myApp-1.0-SNAPSHOT.war

Атрибут имени фрагмента должен иметь значение «$ {portlet.war.name} :: $ {portlet.name}. Первая часть ($ {portlet.war.name}) - это имя файла войны портлета, минус .war. Вторая часть исходит из значения тега в файле portlet.xml.

Вы можете либо переименовать свой военный файл, либо cha Введите определение своей страницы, чтобы включить эту версию. Я не рекомендую помещать номер версии в фрагмент, но, поскольку он может измениться.

Третье решение - фактически изменить имя приложения портлета в вашем web.xml, установив параметр init с именем contextName в сервлет Jetspeed Container. В приведенном ниже примере его набор равен «myApp»:

<servlet> 
    <description>MVC Servlet for Jetspeed Portlet Applications</description> 
    <display-name>Jetspeed Container</display-name> 
    <servlet-name>JetspeedContainer</servlet-name> 
    <servlet-class> 
     org.apache.jetspeed.container.JetspeedContainerServlet</servlet-class> 
    <init-param> 
     <param-name>contextName</param-name> 
     <param-value>myApp</param-value> 
    </init-param> 
    <load-on-startup>100</load-on-startup> 
    </servlet>