Les portails Java sont une classe particulière d'applications Web qui vous permet de développer des systèmes d'information plutôt complexes et modulaires qui ressemblent à des systèmes de gestion de contenu (CMS), mais pour le secteur des entreprises. Cela implique qu'ils ont généralement la capacité de travailler avec des hiérarchies de pages, d'applications, d'utilisateurs, de processus, l'internationalisation est prise en charge et qu'il existe des moyens d'intégration dans l'infrastructure d'information de l'entreprise.
Sur le marché de ces systèmes, il existe des produits commerciaux de sociétés bien connues telles qu'Oracle, SAP, IBM (maintenant HCL Technologies Ltd), Red Hat JBoss, et en outre, il existe également un portail Liferay avec une version open source décente, ainsi que des systèmes de portail éducatifs et autres. , il n'y a pas tout à fait des portails, mais des systèmes d'information qui prennent en charge des technologies de portails telles que DMS Alfresco. Supportive signifie même qu'en théorie les applications développées pour un système peuvent être installées sur un autre, mais en réalité ce n'était pas tout à fait le cas. Les fabricants ont ajouté leurs propres capacités incompatibles avec d'autres, ce qui a laissé cette fonctionnalité inégalée non réalisée.
. , , .. . . 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
Dans Liferay, les cuissons de portlet sont téléchargées vers deploy / , et les cuissons de serveur vers tomcat-xyz / webapps et pour un développement confortable dans portlet-ext.properties, vous devez ajouter des paramètres (qui peuvent être recherchés sur Google) qui désactivent divers caches. Après quelques ajustements, cela peut également être une bonne option pour le développement.