
Java-Portale sind eine spezielle Klasse von Webanwendungen, mit denen Sie recht komplexe und modulare Informationssysteme entwickeln können, die Content Management Systems (CMS) ähneln, jedoch für den Unternehmenssektor. Dies bedeutet, dass sie normalerweise mit Hierarchien von Seiten, Anwendungen, Benutzern, Prozessen arbeiten können, die Internationalisierung unterstützt wird und es Möglichkeiten zur Integration in die Unternehmensinformationsinfrastruktur gibt.
Auf dem Markt für diese Systeme gibt es kommerzielle Produkte von so bekannten Unternehmen wie Oracle, SAP, IBM (jetzt HCL Technologies Ltd), Red Hat JBoss und darüber hinaus ein Liferay-Portal mit einer anständigen Open Source-Version sowie Bildungs- und andere themenorientierte Portalsysteme. Es gibt nicht ganz Portale, sondern Informationssysteme, die Portaltechnologien wie DMS Alfresco unterstützen. Unterstützend bedeutet sogar, dass theoretisch Anwendungen, die für ein System entwickelt wurden, auf einem anderen installiert werden können, aber in Wirklichkeit war dies nicht ganz der Fall. Die Hersteller fügten ihre eigenen Funktionen hinzu, die mit anderen nicht kompatibel waren, wodurch diese beispiellose Funktion nicht realisiert wurde.
. , , .. . . 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.batstartup.sh .
, .
, :
tail logs\catalina-.out -fWindows .
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
In Liferay werden Portlet-Cooks in deploy / und Server-Cooks in tomcat-xyz / webapps ausgelöst. Für eine komfortable Entwicklung in portlet-ext.properties müssen Sie Parameter hinzufügen (die gegoogelt werden können), die das verschiedene Caching deaktivieren. Nach einigen Optimierungen kann dies auch eine gute Option für die Entwicklung sein.