jackrabbit: Почему я получаю javax.jcr.RepositoryException: невозможно получить доступ к репозиторию, когда я запускаю исполняемый файл jar, а не в netbeans?

Я создал исполняемый файл jar из существующего проекта maven в netbeans, который содержит все зависимости, включенные в pom.xml.

Когда я запускаю его в Netbeans, он работает:

stampa
adsa
stampa2

когда вместо этого я запускаю его из исполняемого файла jar, я получаю эту ошибку:

java -jar ./Prova-1.0-SNAPSHOT-jar-with-dependencies.jar

stampa
adsa    

Exception in thread "main" javax.jcr.RepositoryException: Unable to access a repository with the following settings:

        org.apache.jackrabbit.repository.uri: http://localhost:8082/server

    The following RepositoryFactory classes were consulted:

        org.apache.jackrabbit.core.RepositoryFactoryImpl: declined

    Perhaps the repository you are trying to access is not available at the moment.

        at org.apache.jackrabbit.commons.JcrUtils.getRepository(JcrUtils.java:223)
        at org.apache.jackrabbit.commons.JcrUtils.getRepository(JcrUtils.java:263)
        at com.mycompany.leggitutto.Source.main(Source.java:38)

Я не понимаю.

Почему в netbeans не выбрасывается исключение RepositoryException?

Java-код тот же, сборка прошла успешно, а Run отличается!!!

public static void main(String[] args) throws Exception 
{

    System.out.println("stampa");
    System.out.println("adsa");

    Repository repository1 = JcrUtils.getRepository("http://localhost:8082/server"); 
    Session session1 = repository1.login(new SimpleCredentials("admin","admin".toCharArray()), "default");

    System.out.println("stampa2");
}

Сервер Jackrabbit работает по адресу

"http://localhost:8082/server",

Я даже проверил это на firefox, и репозиторий доступен.

Буду рад, если кто-нибудь поможет мне разобраться в этом :)


person Luca    schedule 07.05.2014    source источник


Ответы (1)


Я решил это,

Я изменил плагин maven в pom.xml в onejar-maven-plugin, и теперь он работает.

По-видимому, при использовании maven-shade-plugin или maven-assembly-plugin не все зависимости были добавлены в окончательный исполняемый файл jar.

Этот pom.xml работает ДА!!!

<build>
    <plugins>

    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.1</version>

        <configuration>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>

    </plugin> 

    <plugin>
        <groupId>org.dstovall</groupId>
        <artifactId>onejar-maven-plugin</artifactId>
        <version>1.4.4</version>
        <executions>
            <execution>
                <configuration>
                    <mainClass>Valid.Main.Class</mainClass>
                    <!-- Optional -->
                    <onejarVersion>0.97</onejarVersion>
                    <!-- Optional, default is false -->
                    <attachToBuild>true</attachToBuild>
                    <!-- Optional, default is "onejar" -->
                    <classifier>onejar</classifier>
                </configuration>
                <goals>
                    <goal>one-jar</goal>
                </goals>
            </execution>
        </executions>
    </plugin>

    </plugins>
  </build>                      

    <pluginRepositories>
        <pluginRepository>
            <id>onejar-maven-plugin.googlecode.com</id>
            <url>http://onejar-maven-plugin.googlecode.com/svn/mavenrepo</url>
        </pluginRepository>
    </pluginRepositories>  
person Luca    schedule 08.05.2014
comment
Я просто хотел отметить, что Google Code будет закрыт 25 января 2016 года, и с этого момента запись pluginRepository не будет работать. К счастью, проект onejar был портирован на GitHub, хотя вам придется собрать плагин сам. - person Ahatius; 30.03.2015