Ошибка при создании экземпляра: io.helidon.integrations.cdi.eclipselink.CDISEPlatformExtension - PullRequest
0 голосов
/ 19 октября 2019

Я использую проект Maven в Eclipse для создания веб-сервисов. У меня проблема со сварным контейнером. Я добавил все зависимости, необходимые для helidon и сварки, однако в pom.xml я получаю ошибку, запустив первые две строки кода (инициализация контейнера сварки). Кроме того, я также использую jpa и EclipseLink для подключения к базе данных sql, и соединение успешно. Однако мне нужно использовать базу данных через веб-сервисы, и я столкнулся с проблемой в этой части. Вот операторы импорта для инициирования соединения с сервером:

    import io.helidon.config.Config;
    import io.helidon.microprofile.config.MpConfig;
    import io.helidon.microprofile.server.Server;

    import org.jboss.weld.environment.se.Weld;
    import org.jboss.weld.environment.se.WeldContainer;

Вот основная функция:

    public static void main(String[] args) {
        // Used for dependency injection
        Weld weld = new Weld();
        WeldContainer cdiContainer = weld.initialize();

        Server server = Server.builder()
            .addApplication(Hello.class)
            .cdiContainer(cdiContainer)
            // using a customized helidon config instance (in this case the default...)
            .config(MpConfig.builder().config(Config.create()).build())
            .host("localhost")
            // use 0 for a random free port
            .port(9090)
            .build();

        server.start();

        String endpoint = "http://" + server.host() + ":" + server.port();
        System.out.println("Hello     " + endpoint + "/hello");
    }

И вот ошибка, которую я получил:

    Oct 19, 2019 2:38:21 PM org.jboss.weld.bootstrap.WeldStartup <clinit>
    INFO: WELD-000900: 3.1.1 (Final)
    Exception in thread "main" java.util.ServiceConfigurationError: Error instantiating :io.helidon.integrations.cdi.eclipselink.CDISEPlatformExtension
at org.jboss.weld.util.ServiceLoader.createInstance(ServiceLoader.java:315)
at org.jboss.weld.util.ServiceLoader.prepareInstance(ServiceLoader.java:247)
at org.jboss.weld.util.ServiceLoader.loadService(ServiceLoader.java:215)
at org.jboss.weld.util.ServiceLoader.loadServiceFile(ServiceLoader.java:185)
at org.jboss.weld.util.ServiceLoader.reload(ServiceLoader.java:165)
at org.jboss.weld.util.ServiceLoader.iterator(ServiceLoader.java:289)
at org.jboss.weld.util.collections.Iterables.addAll(Iterables.java:45)
at org.jboss.weld.environment.se.Weld.getExtensions(Weld.java:1047)
at org.jboss.weld.environment.se.Weld.createDeployment(Weld.java:936)
at org.jboss.weld.environment.se.Weld.initialize(Weld.java:777)
at main.ServerMain.main(ServerMain.java:15)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.jboss.weld.util.ServiceLoader.createInstance(ServiceLoader.java:313)
... 10 more
Caused by: java.lang.NoClassDefFoundError: org/eclipse/persistence/platform/server/ServerPlatformUtils
at io.helidon.integrations.cdi.eclipselink.CDISEPlatformExtension.<init>(CDISEPlatformExtension.java:56)
... 15 more
Caused by: java.lang.ClassNotFoundException: org.eclipse.persistence.platform.server.ServerPlatformUtils
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 16 more
...