0

哎嗨,

我是liferay的新手。我正在尝试将在 websphere 6.1(JSR 286) 中开发的 portlet 迁移到 liferay 6.1。暂时我已经开发了一个显示一些文本的门户(PA_test.war),我将其部署在 liferay 上。

.war 文件被选择为“上传 WAR 文件以安装布局模板、portlet 或主题”。

处理后显示以下消息 - “您的请求已成功完成。” “插件上传成功,正在安装中。”

当我尝试在安装的插件中​​查找门户时,我找不到该门户。我看到了上面写着的日志:

信息:取消部署上下文 [/PA_test] 2012 年 7 月 30 日上午 7:54:05 org.apache.catalina.startup.HostConfig deployDirectory 信息:部署 Web 应用程序目录 E:\life\liferay-portal-6.1.0-ce-ga1 \tomcat-7.0.23\webapps\PA_test

我想知道 :

1) portlet 如何遵守 JSR 规范?

2) 没有哪些主要依赖项(技术方面)是无法迁移 porlet 的?

或者liferay是否提供了替代方案或桥梁来做到这一点

或者liferay中websphere 6.1(JSR 286)的等价物是什么?

请帮忙!!


portlet.xml

<?xml version="1.0"?>

<!--AUTOMATICALLY GENERATED DEPLOYMENT DESCRIPTOR - DO NOT EDIT-->
<portlet-app xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0" xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd http://java.sun.com/xml/ns/portlet/portlet-app_2_0.xsd" id="com.bowstreet.portlet.WebAppRunner2_test">
    <portlet>
        <description xml:lang="en">Portlet to test migration from wpf to xmlpf</description>
        <portlet-name>Test Portlet</portlet-name>
        <display-name xml:lang="en">Test Portlet</display-name>
        <portlet-class>com.bowstreet.portlet.adapter.WebAppRunnerPortlet286</portlet-class>
        <init-param>
            <name>model</name>
            <value>test</value>
        </init-param>
        <expiration-cache>0</expiration-cache>
        <supports>
            <mime-type>text/html</mime-type>
            <portlet-mode>view</portlet-mode>
        </supports>
        <supported-locale>en</supported-locale>
        <resource-bundle>nls.test</resource-bundle>
        <portlet-info>
            <title>Test Portlet</title>
            <short-title>Test Portlet</short-title>
            <keywords>Test Portlet</keywords>
        </portlet-info>
        <portlet-preferences></portlet-preferences>
    </portlet>
    <custom-portlet-mode>
        <portlet-mode>config</portlet-mode>
    </custom-portlet-mode>
    <custom-portlet-mode>
        <portlet-mode>edit_defaults</portlet-mode>
    </custom-portlet-mode>
    <user-attribute>
        <description xml:lang="en">User Given Name</description>
        <name>user.name.given</name>
    </user-attribute>
    <user-attribute>
        <description xml:lang="en">User Last Name</description>
        <name>user.name.family</name>
    </user-attribute>
</portlet-app>
4

2 回答 2

0

您正在使用的 portlet 类是:

com.bowstreet.portlet.adapter.WebAppRunnerPortlet286

我认为这是问题所在。这是 Websphere 特定的 portlet 类。你能把它改成类似的东西吗

com.test.portlet.TestPortlet

然后编写扩展 GenericPortlet 的测试类

 public class TestPortlet extends GenericPortlet {
 .........
 ......
 .....
 super.doView();
}

或者你可以通过 Liferay 的 MVCPortlet 类来扩展它。

如果您认为您将使用框架来开发诸如 Struts、Spring、JSF 等的 portlet,您可以通过扩展这些框架提供的相应 portlet 类来创建一个 portlet 类。

希望这可以解决您的问题。

于 2012-07-31T05:20:15.193 回答
0

据我所知,Web Experience Factory(以前称为 WebSphere Portlet Factory)portlet,尽管生成了 JSR(168 或 286)portlet WAR,但目前仅在 IBM WebSphere Portal 上获得许可和支持(除了 JSR API,它们还可以利用IBM 门户 API)。

我希望信息有所帮助,..Mike Burati 本网站上的帖子是我自己的,并不一定代表 IBM 的立场、策略或意见。

于 2014-04-29T19:48:02.043 回答