2010-04-09 73 views
0

我尝试在Liferay的5.2.3部署简单的Spring MVC的Portlet到Liferay 5.2.3

我的portlet部署在内线一个简单的Spring Portlet(我不能使用插件SDK ...):

EXT-IMPL/SRC:

包:com.ext.portlet.springmvc

HelloWorldController.java

package com.ext.portlet.springmvc; 

import java.io.IOException; 

import javax.servlet.ServletException; 
import javax.servlet.http.HttpServletRequest; 
import javax.servlet.http.HttpServletResponse; 

import org.springframework.web.servlet.ModelAndView; 
import org.springframework.web.servlet.mvc.Controller; 

public class HelloWorldController implements Controller { 

    public ModelAndView handleRequest(HttpServletRequest request, 
     HttpServletResponse response) throws ServletException, IOException { 

     String aMessage = "Hello World MVC!"; 
     ModelAndView modelAndView = new ModelAndView("hello_world"); 
     modelAndView.addObject("message", aMessage); 

     return modelAndView; 
    } 
} 

EXT-LIB:

  • jstr.jar
  • 弹簧webmvc.jar
  • 弹簧webmvc-portlet.jar
  • 的spring.jar
  • standard.jar

ext-web/docroot/html/portlet/ext/springmvc/hello_world.jsp

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> 
<html> 
<body> 
    <p>This is my message: ${message}</p> 
</body> 
</html> 

EXT-网/文档根目录/ HTML /门户/转/用SpringMVC/index.jsp的

<html> 
    <body> 
     <p>Hi</p> 
    </body> 
</html> 

EXT-网/文档根/ WEB-INF /用SpringMVC-servlet.xml中

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"> 

    <bean name="/hello_world.html" class="com.ext.portlet.springmvc.HelloWorldController"/> 

    <bean id="viewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
     <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/> 
     <property name="prefix" value="/jsp/"/> 
     <property name="suffix" value=".jsp"/> 
    </bean> 

</beans> 

分机-web /文档根/ WEB-INF/portlet的ext.xml

<portlet> 
    <portlet-name>springmvc</portlet-name> 
    <portlet-class>org.springframework.web.portlet.DispatcherPortlet</portlet-class> 
    <supports> 
     <mime-type>text/html</mime-type> 
     <portlet-mode>view</portlet-mode> 
    </supports> 
    <portlet-info> 
     <title>Simple JSP Portlet</title> 
    </portlet-info> 
    <security-role-ref> 
     <role-name>power-user</role-name> 
    </security-role-ref> 
    <security-role-ref> 
     <role-name>user</role-name> 
    </security-role-ref> 
</portlet> 

EXT-网/文档根/ WEB-INF/web.xml中

<?xml version="1.0"?> 
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" version="2.4"> 

    <servlet> 
     <servlet-name>springmvc</servlet-name> 
     <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
     <load-on-startup>1</load-on-startup> 
    </servlet> 

    <servlet-mapping> 
     <servlet-name>springmvc</servlet-name> 
     <url-pattern>*.html</url-pattern> 
    </servlet-mapping> 

    <welcome-file-list> 
     <welcome-file> 
      jsp/index.jsp 
     </welcome-file> 
    </welcome-file-list> 
</web-app> 

是否有一些错误?

我得到这个错误,当我尝试部署:

Website OC4J 10g (10.1.3) Default Web Site definiert ist. Error creating bean w 
ith name 'com.liferay.portal.kernel.captcha.CaptchaUtil' defined in class path r 
esource [META-INF/util-spring.xml]: Cannot create inner bean 'com.liferay.portal 
.captcha.CaptchaImpl#1424b7b' of type [com.liferay.portal.captcha.CaptchaImpl] w 
hile setting bean property 'captcha'; nested exception is org.springframework.be 
ans.factory.BeanCreationException: Error creating bean with name 'com.liferay.po 
rtal.captcha.CaptchaImpl#1424b7b' defined in class path resource [META-INF/util- 
spring.xml]: Instantiation of bean failed; nested exception is org.springframewo 
rk.beans.BeanInstantiationException: Could not instantiate bean class [com.lifer 
ay.portal.captcha.CaptchaImpl]: Constructor threw exception; nested exception is 
java.lang.NullPointerException 

希望有人能帮助我...

回答

0

Checkout this blog- How to setup Liferay+SpringMVC?

你会发现如何设置的Liferay用SpringMVC +门户。

+0

如果链接出现故障,您能否扩展您的答案以包含如何做到这一点的信息? – 2013-07-30 16:41:04

+0

嗨克里斯,我会尝试创建一个单独的帖子只是为了在stackoverflow上设置一个Liferay + SpringMVC portlet。在这里我不能添加整个代码。但是为了澄清我可以告诉设置一个SpringMVC portlet,你只需要做一些修改在你当前的portlet中。你需要改变你的web.xml,添加新的portletName-portlet。xml(其中包含您的bean详细信息和视图解析器)以及portlet.xml中的最后更改。 – PanwarS87 2013-08-01 16:04:22

+0

另外,你不必从任何地方下载任何罐子。你可以在liferay-plugin-package.properties的帮助下简单地将它们从liferay-war中加入。它非常简单。欲了解更多信息,请访问:http://www.shashantpanwar.com – PanwarS87 2013-08-01 16:05:21