java - 如何创建Portlet/在Weblogic IDE Eclipse上部署

标签 java weblogic-10.x

我正在学习“如何创建门户网站应用程序”,并阅读了一些文档和教程。我发现我们需要一台应用程序服务器,一台门户容器和一台IDE。

请帮助我理解它。

我想创建一个portlet并将其部署在weblogic服务器上。所以我需要什么。

表示:eclipse中的任何插件
       Portlet容器
       应用服务器
       等等.....

谢谢

最佳答案

我刚刚启动并运行了pluto portlet容器。冥王星的教程有些粗略,大多数包含可能使您偏离路线的错误。因此,我已尽力做到这一点。

从那以后,我设法使冥王星在WebLogic下运行,尽管并不完美(稍后讨论)。因此,我认为您的目标是:


安装Portlet容器:例如冥王星
创建一个HelloWorld portlet,进行部署并发布
也许部署portlet,使其在WebLogic下运行?不确定这是否是您想要的。
Portlet通讯
构建更多重量级的portlet,满足您的需求
升级门户实施(例如JetSpeed)


因此,这里是:

1.安装Portlet容器:例如冥王星

我建议您从pluto portlet开始,因为这是参考实现,并且遵循规范的版本2(JSR-286)。从以下位置下载二进制发行版:

http://portals.apache.org/pluto/v20/getting-started.html


它位于tomcat 6网络服务器中。因此,要运行基本的portlet,只需配置并启动tomcat。可以在webapps目录中找到pluto Web应用程序。

要了解有关tomcat的更多信息,请参见此处:

http://www.puschitz.com/InstallingTomcat.html#InstallingTomcatSoftware


请注意,这有些复杂(有充分的理由),因为它建议创建单独的tomcat实例。虽然本教程实际上只花了一个小时,所以我建议您在Portlet工作之前进行推荐,以便您有良好的基础。

简单来说,要启动pluto(好是tomcat),您只需将$ {CATALINA_HOME}设置为您的tomcat安装目录(pluto-2.0.2)并执行{pluto_install_dir} /bin/startup.sh。您可以使用以下方法从浏览器访问pluto门户:

http://localhost:8080/pluto/portal


2.创建一个HelloWorld portlet,进行部署并发布

令人高兴的是,冥王星教程几乎足以使您入门。令人难以置信的是,我发现的所有教程都有缺陷或错误。在一点帮助下,您应该可以解决这个问题。它在同一地方:

http://portals.apache.org/pluto/v20/deploying.html


“ Portlet程序集”下显示的目录结构略有错误。 webapp文件夹应与main文件夹下的java文件夹处于同一级别。

这是一个示例HelloWorld portlet,它使用响应中的直接输出(如servlet)呈现:

package com.mycompany.portlet;
//imports omitted...

public class HelloWorldPortlet extends GenericPortlet{
  protected void doView(RenderRequest request,RenderResponse response)
        throws PortletException, IOException {
      response.setContentType("text/html");
      response.getWriter().println("Hello World");
  }
}


这是一个示例WEB-INF / portlet.xml:

<?xml version="1.0" encoding="UTF-8"?>

<portlet-app
    xmlns="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd"
    version="1.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd
                        http://java.sun.com/xml/ns/portlet/portlet-app_1_0.xsd">

    <portlet>
        <description>HelloWorld Description</description>
        <portlet-name>HelloWorldPortlet</portlet-name>
        <display-name>Hello World Display Name</display-name>
        <portlet-class>com.mycompany.portlet.HelloWorldPortlet</portlet-class>
        <expiration-cache>-1</expiration-cache>
        <supports>
            <mime-type>text/html</mime-type>
            <portlet-mode>VIEW</portlet-mode>
        </supports>
        <supported-locale>en</supported-locale>
        <portlet-info>
            <title>Hello World</title>
            <short-title>Hello World</short-title>
            <keywords>Hello,pluto</keywords>
        </portlet-info>
    </portlet>
</portlet-app>


这是WEB-INF / web.xml的示例:
    
    

<web-app id="WebApp_ID">
   <display-name>Hello World Portlet</display-name>
   <taglib>
      <taglib-uri>http://java.sun.com/portlet</taglib-uri>
      <taglib-location>tld/portlet.tld</taglib-location>
   </taglib>
</web-app>


将portlet.tld(prtlet 2.0版本)放在您的tld目录中。注意,我们没有使用JSP,因此它将为空。有关基于JSP的良好(但不完整)的教程,请参见此处:

http://www.ibm.com/developerworks/java/library/j-pluto/


使用提供的mvn构建脚本进行构建:

http://portals.apache.org/pluto/v20/deploying.html


如果不添加构建脚本的“自动部署”部分,请将构建战争移至您的Pluto(tomcat)Web应用程序。

在浏览器中,您必须从冥王星门户(添加页面->添加portlet)的管理页面发布新的HelloWorld Web应用程序。应该添加一个包含您的Portlet的新选项卡。

3.在WebLogic下部署portlet


将冥王星库添加到WebLogic库中。我将它们放在您的域库目录中(该目录包含一个自述文件,指示这是用于添加要在10.2.3上动态加载的jars)。这是$ {MYDOMAIN} / lib。要找到的罐子如下:

http://portals.apache.org/pluto/v20/embedding.html
将Pluto Web应用程序和所有引用(发布)的Webapp添加到WLS上传目录中。这意味着包括冥王星提供的测试套件和新的helloworld Web应用程序。
配置WLS以能够访问您的Portlet:


Pluto Web应用程序是为用户Pluto和Tomcat配置的安全性。因此,您必须向WLS安全领域添加一个新的“ pluto”用户[安全领域-> myRealm]
配置webapp安全以将安全角色映射到WLS用户。这意味着创建$ {MYUPLOAD} /pluto/WEB-INF/weblogic.xml。在这里为主体冥王星(您的新WebLogic用户)添加一个“ security-role-assignment”条目。
请注意,testsuite / WEB-INF / web.xml仅授权给用户tomcat。将此更改为冥王星。
将portlet_2_0.tld添加到$ {UPLOAD} / testsuite / WEB-INF / tld(设为tld dir)。可在以下位置找到它:http://svn.apache.org/repos/asf/portals/jetspeed-2/portal/trunk/jetspeed-portal-resources/src/main/resources/tld/portlet_2_0.tld
在WLS下,一些测试套件仍将失败。 apache和社区之间存在悬而未决的问题。他们将其视为WLS问题(在https://issues.apache.org/jira/browse/PLUTO-571的Apache Pluto Jira上)。
使用JSP呈现时,portlet实际上呈现在portlet框架(div)之外,这是一个问题。尚未深入探究。



4. Portlet通讯

有两个portlet可以互操作。参考:

http://publib.boulder.ibm.com/infocenter/wpexpdoc/v6r1/index.jsp?topic=/com.ibm.wp.exp.doc_v6101/dev/pltcom_pubrndrprm.html


5.构建更多重量级的portlet

请参考使用JSP的更复杂的webapp教程,网址为:

http://www.ibm.com/developerworks/java/library/j-pluto/
//Warning: portlet 1.0 (JSR-168) and contains errors


然后尝试自己的...

6.升级门户实施

以JetSpeed为例。参考:

http://portals.apache.org/jetspeed-2/

关于java - 如何创建Portlet/在Weblogic IDE Eclipse上部署,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7665010/

相关文章:

java - Documentum 错误 ~ 试图获取进程间锁的 IO 异常

java - Jar 依赖 - 应用程序服务器类路径与将其添加到应用程序 war 本身

java - 用于以编程方式部署应用程序的 weblogic 服务器脚本

java - StartWeblogic.sh linux 中环境变量的设置

Java SWIFT 库

java - 如何覆盖 Wicket 口中特定页面的渲染策略

Java从另一个类获取字符串返回null

java - requestDispatcher.forward 和 response.redirect 不起作用

java - 迷宫生成器小程序

java - 将Oracle WebLogic服务器从10.3.5升级到12c,部署时出现错误 "java.lang.IncompatibleClassChangeError: Implementing class"