我尝试在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
希望有人能帮助我...
如果链接出现故障,您能否扩展您的答案以包含如何做到这一点的信息? – 2013-07-30 16:41:04
嗨克里斯,我会尝试创建一个单独的帖子只是为了在stackoverflow上设置一个Liferay + SpringMVC portlet。在这里我不能添加整个代码。但是为了澄清我可以告诉设置一个SpringMVC portlet,你只需要做一些修改在你当前的portlet中。你需要改变你的web.xml,添加新的portletName-portlet。xml(其中包含您的bean详细信息和视图解析器)以及portlet.xml中的最后更改。 – PanwarS87 2013-08-01 16:04:22
另外,你不必从任何地方下载任何罐子。你可以在liferay-plugin-package.properties的帮助下简单地将它们从liferay-war中加入。它非常简单。欲了解更多信息,请访问:http://www.shashantpanwar.com – PanwarS87 2013-08-01 16:05:21