Исключения зависимостей Maven портлета Liferay - PullRequest
0 голосов
/ 11 февраля 2020

Я создал портлет Liferay для моего ученичества, который также работал. Тем не менее, я работал с образцами объектов, чтобы вначале все было просто. Затем мой руководитель интегрировал несколько пакетов, чтобы я мог вызвать службу для получения реального объекта. После того, как это произошло, он изменил некоторые зависимости, иначе возникнут проблемы.

Пока все работало, за исключением того, что компоненты пользовательского интерфейса больше не работали, потому что работал с Primefaces 7.0 и Primefaces 3.5 используется в производственной системе. Поскольку там также используется JSF 2.1, я должен ориентироваться на более старую версию простых лиц. Но он сказал, что есть способ использовать Primefaces 6.1. Как описано здесь: https://faces.liferay.dev/home/-/archetype-portlet/liferay-portal-version/6.2/jsf-version/2.1/component-suite/primefaces/build-tool/maven

Я следовал этому руководству и изменил свои зависимости. После этого ничего не получалось. Я перепробовал все. Пытается удалить дублирующиеся зависимости, которые могут мешать, проверяет файлы jar в папке lib и так далее. В зависимости от ситуации, я получаю другие сообщения об ошибках, но я не могу прогрессировать в течение 2 дней.

К сожалению, я не получаю код, когда все работало со старой версией. Поэтому я публикую текущее состояние, возможно, кто-то может мне помочь.

<dependencies>
    <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>1.3.3</version>
    </dependency>
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.4</version>
    </dependency>
    <dependency>
        <groupId>com.liferay.faces.patches</groupId>
        <artifactId>com.liferay.faces.lsv.485.patch</artifactId>
        <version>1.0.0</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>jstl</artifactId>
        <version>1.1.2</version>
    </dependency>
    <dependency>
        <groupId>javax.inject</groupId>
        <artifactId>javax.inject</artifactId>
        <version>1</version>
    </dependency>
    <dependency>
        <groupId>com.liferay.portal</groupId>
        <artifactId>portal-service</artifactId>
        <version>${liferay.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.liferay.portal</groupId>
        <artifactId>util-java</artifactId>
        <version>${liferay.version}</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-api</artifactId>
        <version>2.1.21</version>
    </dependency>
    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-impl</artifactId>
        <version>2.1.21</version>
    </dependency>
    <dependency>
          <groupId>javax.faces</groupId>
          <artifactId>jsf-api</artifactId>
          <version>1.2_15</version>
          <scope>provided</scope>
     </dependency>
    <dependency>
        <groupId>javax.el</groupId>
        <artifactId>el-api</artifactId>
        <version>1.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>javax.portlet</groupId>
        <artifactId>portlet-api</artifactId>
        <version>2.0</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
         <groupId>org.jboss.portletbridge</groupId>
         <artifactId>portletbridge-api</artifactId>
         <version>2.3.1.Final</version>
         <scope>provided</scope>
     </dependency>
     <dependency>
         <groupId>org.jboss.portletbridge</groupId>
         <artifactId>portletbridge-impl</artifactId>
         <version>2.3.1.Final</version>
         <scope>provided</scope>
     </dependency>
     <dependency>
         <groupId>org.richfaces.ui</groupId>
         <artifactId>richfaces-ui</artifactId>
         <version>3.3.3.Final</version>
         <scope>provided</scope>
     </dependency>
     <dependency>
          <groupId>org.richfaces.framework</groupId>
          <artifactId>richfaces-api</artifactId>
          <version>3.3.3.Final</version>
          <scope>provided</scope>
     </dependency>
     <dependency>
          <groupId>org.richfaces.framework</groupId>
          <artifactId>richfaces-impl</artifactId>
          <version>3.3.3.patched</version>
          <scope>provided</scope>
     </dependency>
     <dependency>
        <groupId>javax.faces</groupId>
        <artifactId>javax.faces-api</artifactId>
        <version>2.1</version>
        <scope>provided</scope>
    </dependency>
     <dependency>
          <groupId>javax.faces</groupId>
          <artifactId>jsf-impl</artifactId>
          <version>1.2_15</version>
          <scope>provided</scope>
     </dependency>
     <dependency>
          <groupId>com.sun.facelets</groupId>
          <artifactId>jsf-facelets</artifactId>
          <version>1.1.15.B1</version>
          <scope>provided</scope>
     </dependency>      
    <dependency>
        <groupId>org.jboss.seam</groupId>
        <artifactId>jboss-el</artifactId>
        <version>2.0.0.GA</version>
        <exclusions>
            <exclusion>
                <artifactId>el-api</artifactId>
                <groupId>javax.el</groupId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>javax.faces</groupId>
        <artifactId>javax.faces-api</artifactId>
        <version>2.1</version>
        <scope>provided</scope>
    </dependency>
    <dependency>
        <groupId>org.glassfish</groupId>
        <artifactId>javax.faces</artifactId>
        <version>2.1.29-10</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>com.liferay.faces</groupId>
        <artifactId>com.liferay.faces.bridge.ext</artifactId>
        <version>2.0.1</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>com.liferay.faces</groupId>
        <artifactId>com.liferay.faces.bridge.impl</artifactId>
        <version>3.1.0</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>log4j</groupId>
        <artifactId>log4j</artifactId>
        <version>1.2.14</version>
    </dependency>
    <dependency>
        <groupId>org.primefaces</groupId>
        <artifactId>primefaces</artifactId>
        <version>6.1</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

По техническим причинам я удалил 2 зависимости, связанные с интегрированной платформой, из кода, показанного выше.

Это некоторые сообщения об ошибках, которые перестраиваются в build:

SCHWERWIEGEND: ContainerBase.addChild: start: 
org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/DynamischerKonfigurationsDialog-portlet]]
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652)
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1263)
    at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1948)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
    at java.util.concurrent.FutureTask.run(FutureTask.java:262)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
    at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.NoClassDefFoundError: javax/faces/webapp/FacesServlet
    at com.sun.faces.config.FacesInitializer.<clinit>(FacesInitializer.java:106)
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:274)
..
SCHWERWIEGEND: Servlet.service() for servlet DynamicKonfigCheckBox Servlet threw exception
javax.portlet.faces.BridgeException: javax.faces.FacesException: No portlet bridge context
    at com.liferay.faces.bridge.internal.BridgePhaseRenderImpl.execute(BridgePhaseRenderImpl.java:63)
...
Caused by: javax.faces.FacesException: No portlet bridge context
    at org.jboss.portletbridge.context.PortletExternalContextImpl.<init>(PortletExternalContextImpl.java:115)
    at org.jboss.portletbridge.context.MimeExternalContextImpl.<init>(MimeExternalContextImpl.java:74)
...
Feb 11, 2020 8:26:15 AM org.apache.catalina.core.ApplicationDispatcher invoke
SCHWERWIEGEND: Servlet.service() for servlet DynamicKonfigCheckBox Servlet threw exception
javax.portlet.faces.BridgeException: javax.faces.FacesException: No portlet bridge context
    at com.liferay.faces.bridge.internal.BridgePhaseRenderImpl.execute(BridgePhaseRenderImpl.java:63)
    at com.liferay.faces.bridge.internal.BridgeImpl.doFacesRequest(BridgeImpl.java:161)
...
Caused by: javax.faces.FacesException: No portlet bridge context
    at org.jboss.portletbridge.context.PortletExternalContextImpl.<init>(PortletExternalContextImpl.java:115)
    at org.jboss.portletbridge.context.MimeExternalContextImpl.<init>(MimeExternalContextImpl.java:74)
...
...