Desarrollo de aplicaciones web en el portal integrado

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

, ,

http://localhost:8080/pluto

- 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.




All Articles