Los portales Java son una clase especial de aplicaciones web que le permite desarrollar sistemas de información bastante complejos y modulares que se asemejan a los Sistemas de Gestión de Contenidos (CMS), pero para el sector corporativo. Esto implica que suelen tener la capacidad de trabajar con jerarquías de páginas, aplicaciones, usuarios, procesos, se soporta la internacionalización, y existen medios de integración a la infraestructura de información corporativa.
En el mercado de estos sistemas, existen productos comerciales de empresas tan conocidas como Oracle, SAP, IBM (ahora HCL Technologies Ltd), Red Hat JBoss y, además, también hay un portal Liferay con una versión de código abierto decente, así como sistemas de portal educativos y otros sistemas de portal orientados a temas. , no hay exactamente portales, sino sistemas de información que soportan tecnologías de portal como DMS Alfresco. Apoyo significa incluso que, en teoría, las aplicaciones desarrolladas para un sistema se pueden instalar en otro, pero en realidad este no fue del todo el caso. Los fabricantes agregaron sus propias capacidades que eran incompatibles con otras, lo que dejó sin realizar esta característica incomparable.
. , , .. . . Portlet 3.0 .
“”, . .
java . Portlets 1.0 , Portlets 2.0, Portlets 3.0.
, - - ;). npm spring-boot . .. SPA , “ ” . , . : JSON , , , xml-, .
, - -. .. java , Spring, Struts, Faces, Jersey . PHP Ruby.
WSRP .
. 4- . .
Java , “” .
Apache Pluto, , .. .
.
Unix-like Windows git shell . git cmd.exe
git clone https://github.com/apache/portals-pluto
. , - , 8 ant. .
mvn package
ant -f dist-build.xml -DpackageOnly=true
-DincludeDemos=true , - , demo/pom.xml build
<finalName>${project.name}</finalName>
Windows pom.xml,.. -
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-gpg-plugin</artifactId>
<version>1.6</version>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
target/dist , . , .. .
pluto-3.1.1-SNAPSHOT-bundle.tar.bz2
.
, :\projects
cd c:\projects
tar xvjf c:\portals-pluto\pluto-3.1.1-SNAPSHOT-bundle.tar.bz2
cd pluto-3.1.1-SNAPSHOT
bin\startup.bat
startup.sh .
, .
, :
tail logs\catalina-.out -f
Windows .
org.apache.catalina.startup.Catalina.start Server startup
, ,
- pluto .
.
, , Apache Pluto , , , , Liferay WebSphere/HCL DXP.
Pluto Admin, .
http://localhost:8080/pluto/portal/Pluto%20Admin
demo, , .war webapps/.
. maven, . windows M2_HOME M2_HOME\bin Path.
cd projects
mvn archetype:generate -DarchetypeGroupId=org.apache.portals.pluto.archetype -DarchetypeArtifactId=mvcbean-jsp-portlet-archetype -DarchetypeVersion=3.1.0 -DgroupId=com.mycompany -DartifactId=hello-portlet
- Enter.
pom.xml .
<finalName>${project.name}</finalName>
.
, .. pluto .
cd hello-portlet
mvn -Ppluto package
, , . .. “” .
pluto liferay-cdi liferay-spring, Liferay . .. .. , .
target/’ Java- .war .
.war webapps.
- .
.
, Firefox, Chrome. - , , , .war webapps/ . , , .
, , , , , . VIEW render , EDIT, HELP . “ ” == “ ”. .. . . ( ) , , , .
hello-portlet/ maven IntelliJ IDEA. , gradle , .. . maven.
, MVC .
, .. , portletName portletNames. , Portlet .
:
@Inject - -
@RenderMethod -
@ActionMethod - GET, POST “ ”
@ServeResourceMethod - JSON
- actionName, id.
WAR , ..
src/main/webapp/resources
@RenderMethod(portletNames = "HelloPortlet", include = "/WEB-INF/jsp/helloView.jsp")
<portlet:actionURL var="placeOrderURL" name="placeOrder"></portlet:actionURL>
<portlet:resourceURL var="getSettingsURL" id="getSettings"></portlet:resourceURL>
rest .
request.setAttribute JSTL (.. ) JSP
<%
String ctxPath = request.getContextPath();
List<String> settings = (List<String>) renderRequest.getAttribute("settings");
%>
, . , . .
, <portlet:namespace> contextPath .. id , , , .
, . React, Angular, Vue . -, .. . skinny-widgets (https://www.npmjs.com/package/skinny-widgets) - .
GET public render parameters
@PortletConfiguration(portletName="portlet1", publicParams = {"categoryId"},
… { }
)
POST , .
RenderURL renderURL = resp.createRenderURL();
MutableRenderParameters renderParams = renderURL.getRenderParameters();
String idString = renderParams.getValue(name);
Liferay ( ) , .
multipart
Part part = request.getPart("image");
“ ” , . , @PortletConfiguration, .
, PortletPreferences, .. . Apache Pluto , Liferay .
@PortletConfiguration portlet.xml, .
“ ”, demo/ . “ ?”, “ ?”.
, .. , , weld, jandex 1.2.2.Final lib/ .
, . , , .
- : http://bitbucket.org/finistmart
JAX-RS - MySQL c Postgres.
: ;) .
, .
Pluto Liferay ( i7 2 U 8 Gb RAM , liferay, , ;) .
Liferay, , sourceforge.net
En Liferay, las cocinas de portlet se lanzan en deploy / , y las cocinas de servidor en tomcat-xyz / webapps y para un desarrollo cómodo en portlet-ext.properties necesita agregar parámetros (que se pueden buscar en Google) que deshabiliten varias cachés. Después de algunos ajustes, también puede ser una buena opción de desarrollo.