【问题标题】:wildfly swarm: fails when changing facades packageswildfly swarm:更改外观包时失败
【发布时间】:2016-10-18 21:22:48
【问题描述】:

我有 Wildfly swarm 应用程序,它具有 App 类、容器和部署以及外观,一切正常,但是当我将 UserFacades 更改为另一个包并与运行应用程序的 App 主类分离时,部署失败!

导入 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)

怎么了?如何设置主 App 类以扫描所有包?

【问题讨论】:

  • 与问题无关,但请注意 Container 类已弃用。右边的叫Swarm

标签: jboss jersey wildfly wildfly-swarm


【解决方案1】:

哦,我错过了将新包添加到部署类:( deployment.addPackage("com.myproject.facades");

【讨论】:

  • 现在修好了?
猜你喜欢
  • 1970-01-01
  • 2017-02-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多