Невозможно получить InjectionProvider из времени инициализации FacesContext после преобразования проекта IntelliJ в проект Eclipse - PullRequest
0 голосов
/ 06 декабря 2018

Я попытался импортировать проект J2EE (JSF + Primefaces) из IntelliJ в Eclipse и Gradle.В Eclipse я создал новый проект Gradle и переместился в папку src, все исходные файлы из проекта IntelliJ.Конечно, я создал папки WebContent и WEB-INF и папку extra libs (для моей внешней библиотеки JAR).

Я создал файл build.gradle:

    apply plugin: 'java'
apply plugin: 'eclipse-wtp'  // The correct plug-in!
apply plugin: 'war'

project.webAppDirName = 'WebContent'
// In this section you declare where to find the dependencies of your project
repositories {
    // Use jcenter for resolving your dependencies.
    // You can declare any Maven/Ivy/file repository here.
    jcenter()
}
dependencies {
    // This dependency is exported to consumers, that is to say found on their compile classpath.

    compile group: 'org.glassfish.jersey.containers', name: 'jersey-container-servlet-core', version: '2.26-b03'
    compile group: 'org.glassfish.jersey.media', name: 'jersey-media-multipart', version: '2.26-b03'

    compile group: 'org.primefaces', name: 'primefaces', version: '6.2'
    compile group: 'org.postgresql', name: 'postgresql', version: '42.1.1'

    //JSF
    compile group: 'com.sun.faces', name: 'jsf-api', version: '2.2.18'

    compile 'org.gdal:gdal:2.1.0'


    compile 'org.apache.clerezza.ext:org.json.simple:0.4'
    compile 'commons-io:commons-io:2.5'



    compile fileTree(include: ['*.jar'], dir: 'libs')

    // This dependency is used internally, and not exposed to consumers on their own compile classpath.
    implementation 'com.google.guava:guava:23.0'

    // Use JUnit test framework
    testImplementation 'junit:junit:4.12'
}

Я создалфайл web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd"
         version="4.0">
    <servlet>
        <servlet-name>Faces Servlet</servlet-name>
        <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>

    </servlet>

    <context-param>
        <param-name>com.sun.faces.forceLoadConfiguration</param-name>
        <param-value>true</param-value>
    </context-param>
    <context-param>
        <param-name>primefaces.FONT_AWESOME</param-name>
        <param-value>true</param-value>
    </context-param>

    <context-param>
        <param-name>primefaces.THEME</param-name>
        <param-value>adamantium</param-value>
    </context-param>

    <context-param>
        <param-name>javax.faces.FACELETS_LIBRARIES</param-name>
        <param-value>/WEB-INF/primefaces-adamantium.taglib.xml</param-value>
    </context-param>

    <servlet-mapping>
        <servlet-name>Faces Servlet</servlet-name>
        <url-pattern>*.xhtml</url-pattern>
        <url-pattern>*.jsf</url-pattern>
        <url-pattern>/faces/*</url-pattern>
        <url-pattern>*.faces</url-pattern>
    </servlet-mapping>

    <welcome-file-list>
        <welcome-file>faces/index.xhtml</welcome-file>
    </welcome-file-list>


</web-app>

и face-config.xml

<?xml version='1.0' encoding='UTF-8'?>

<faces-config version="2.3" xmlns="http://xmlns.jcp.org/xml/ns/javaee"
              xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
              xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_3.xsd">

    <component>
        <component-type>org.primefaces.component.AdamantiumMenu</component-type>
        <component-class>org.primefaces.adamantium.component.menu.AdamantiumMenu</component-class>
    </component>

    <render-kit>
        <renderer>
            <component-family>org.primefaces.component</component-family>
            <renderer-type>org.primefaces.component.AdamantiumMenuRenderer</renderer-type>
            <renderer-class>org.primefaces.adamantium.component.menu.AdamantiumMenuRenderer</renderer-class>
        </renderer>
    </render-kit>

</faces-config>

После проверки кода я создал файл war без каких-либо предупреждений / ошибок.Я развернул файл war на Tomcat 8, но когда я пытаюсь запустить WebApp, я получаю сообщение об ошибке:

dic 06, 2018 18:43:32 javax.faces.FactoryFinderInstance copyInjectionProviderFromFacesContext GRAVE: Невозможно выполнитьполучить InjectionProvider из времени инициации FacesContext.В этом контейнере реализован SPI Mojarra Injection?dic 06, 2018 18:43:32 javax.faces.FactoryFinderInstance getFactory GRAVE: Приложение не было должным образом инициализировано при запуске, не удалось найти Factory: javax.faces.context.FacesContextFactory.Попытка найти резервную копию.

WebApp, созданный из проекта IntelliJ, работает нормально, но я не знаю, почему он не работает, когда он создается проектом Eclipse.Может быть, я что-то забыл, но я не знаю, что я забыл ...

...