рой диких мух: сбой при изменении пакетов фасадов

У меня есть приложение wildfly swarm, в котором есть класс приложения, контейнер и развертывание, а также фасады, все работает нормально, но когда я изменил UserFacades на другой пакет и отделил его от основного класса приложения, который запускает приложение, развертывание не выполняется!

импортировать org.wildfly.swarm.Swarm;

public class App {

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

        MyContainer.newContainer()
                .start()
                .deploy(MyDeployment.createDeployment());

    }


public class MyContainer {

    private static final String MYSQL_OPTIONS = "autoReconnect=true&useSSL=false&useUnicode=true&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=UTC";

    public static Container newContainer() throws Exception {
        Container container = new Container();

        container.fraction(new DatasourcesFraction()
                .jdbcDriver("mysql", (d) -> {
                    d.driverClassName("com.mysql.jdbc.Driver");
                    d.xaDatasourceClass("com.mysql.jdbc.jdbc2.optional.MysqlXADataSource");
                    d.driverModuleName("com.mysql");
                })
                .dataSource("MyDS", (ds) -> {
                    ds.driverName("mysql");
                    ds.connectionUrl("jdbc:mysql://localhost:3306/tfm?" + MYSQL_OPTIONS);
                    ds.userName("root");
                    ds.password("root");
                })
        );

        container.fraction(new MySQLJPAFraction()
                .inhibitDefaultDatasource()
                .defaultDatasource("jboss/datasources/MyDS")
        );

        return container;
    }

public class MyDeployment {

  public static JAXRSArchive createDeployment() throws Exception {
    JAXRSArchive deployment = ShrinkWrap.create(JAXRSArchive.class);

    deployment.addPackage(App.class.getPackage());
    deployment.addAsWebInfResource(
        new ClassLoaderAsset("META-INF/persistence.xml", App.class.getClassLoader()), "classes/META-INF/persistence.xml");
    deployment.addAsWebInfResource(
        new ClassLoaderAsset("META-INF/load.sql", App.class.getClassLoader()), "classes/META-INF/load.sql");

      return deployment;
  }
}


2016-10-19 01:12:17,308 ERROR [stderr] (main)     Caused by: java.lang.NoClassDefFoundError: Lcom/project/backend/facades/UserFacade;
2016-10-19 01:12:17,309 ERROR [stderr] (main)     Caused by: java.lang.ClassNotFoundException: com.project.backend.facades.UserFacade from [Module \"deployment.082daa7c-bb37-4a26-9740-29e7de1da93b.war:main\" from Service Module Loader]"}}

2016-10-19 01:12:17,309 ERROR [stderr] (main)   at org.wildfly.swarm.container.runtime.RuntimeDeployer.deploy(RuntimeDeployer.java:159)

2016-10-19 01:12:17,310 ERROR [stderr] (main)   at org.wildfly.swarm.container.Container.deploy(Container.java:432)

2016-10-19 01:12:17,310 ERROR [stderr] (main)   at org.wildfly.swarm.Swarm.deploy(Swarm.java:122)

2016-10-19 01:12:17,310 ERROR [stderr] (main)   at com.project.backend.App.main(App.java:15)

Что не так? Как я могу настроить основной класс приложения для сканирования всех пакетов?


person Armen Arzumanyan    schedule 18.10.2016    source источник
comment
Не имеет отношения к вопросу, но обратите внимание, что класс Container устарел. Правый называется Swarm.   -  person Ladicek    schedule 19.10.2016


Ответы (1)


О, я пропустил добавление новых пакетов в класс развертывания :( deployment.addPackage("com.myproject.facades");

person Armen Arzumanyan    schedule 18.10.2016
comment
Теперь это исправлено? - person Ken; 19.10.2016