我对嵌入的payara微有问题。我想用eclipse中的payara micro启动我的java ee应用程序。但这不起作用。
我用三个类创建了一个简单的java ee项目。
@ApplicationPath("resources")
public class JAXRSConfiguration extends Application {
}
@Path("ping")
public class PingResource {
@GET
public String ping() {
return "Enjoy Java EE 8!";
}
}
最后是我的代码的“主”类。
public class Startup {
public static void main(String... args) throws BootstrapException {
PayaraMicro.getInstance() //
.setHttpAutoBind(true) //
.bootStrap();
}
}
pom.xml看起来像:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.lube</groupId>
<artifactId>payaramicro</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<payara.version>5.194</payara.version>
<failOnMissingWebXml>false</failOnMissingWebXml>
</properties>
<dependencies>
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>8.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>fish.payara.extras</groupId>
<artifactId>payara-micro</artifactId>
<version>${payara.version}</version>
</dependency>
</dependencies>
<build>
<finalName>payaramicro</finalName>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<configuration>
<executable>java</executable>
<arguments>
<argument>-classpath</argument>
<classpath />
<argument>com.lube.Mona</argument>
</arguments>
</configuration>
</plugin>
</plugins>
</build>
</project>
启动后,出现以下错误:
Exception in thread "main" fish.payara.micro.BootstrapException: Provider org.glassfish.json.JsonProviderImpl not found
at fish.payara.micro.impl.PayaraMicroImpl.bootStrap(PayaraMicroImpl.java:1076)
at fish.payara.micro.PayaraMicro.bootStrap(PayaraMicro.java:143)
at com.lube.Startup.main(Startup.java:10)
Caused by: javax.json.JsonException: Provider org.glassfish.json.JsonProviderImpl not found
at javax.json.spi.JsonProvider.provider(JsonProvider.java:99)
at javax.json.Json.createWriterFactory(Json.java:253)
at fish.payara.appserver.micro.services.data.InstanceDescriptorImpl.toJsonString(InstanceDescriptorImpl.java:301)
at fish.payara.micro.impl.PayaraMicroImpl.dumpFinalStatus(PayaraMicroImpl.java:2596)
at fish.payara.micro.impl.PayaraMicroImpl.bootStrap(PayaraMicroImpl.java:1068)
... 2 more
Caused by: java.lang.ClassNotFoundException: org.glassfish.json.JsonProviderImpl
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)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:264)
at javax.json.spi.JsonProvider.provider(JsonProvider.java:96)
... 6 more
我的项目的目标是使用eclipse轻松启动应用程序(进行调试等)
我还尝试使用命令“ mvn compile exec:exec”启动应用程序,该命令在payara微型github页面(https://github.com/payara/Payara-Examples/blob/master/payara-micro/simplest-bootstrap/pom.xml)中进行了描述
使用命令,payara成功启动,但是页面“ resources / ping”不可用。
是否可以在同一项目中使用java ee代码和payara嵌入的main方法?
BR 卢卡斯
答案 0 :(得分:0)
我相信Deployment Example是您的本意。
关键步骤是将部署目录设置为Maven目标目录:
pd.concat([df[w_mask].merge(df2,left_on=['F1','F2'],right_on=['F1','F2'],how='left'),
df[~w_mask].merge(df2.rename(columns={'F1':'F2','F2':'F1'}),
left_on=['F1','F2'],
right_on=['F1','F2'],
how='left')
]).sort_values('index').set_index('index')
在引导时进行部署的细节可以在手册中找到:https://payara.gitbooks.io/payara-server/documentation/payara-micro/deploying/deploy-program-bootstrap.html
如果您想使用Payara Micro Maven Plugin,则应该看看this example。