使用Java EE Payara Micro时,我有什么选择来设置JDBC驱动程序和资源?
我正在从 payara micro UberJar 运行我的应用程序,并且希望增加分配给应用程序的内存。我怎样才能在创建 uberJar 时做到这一点?
我正在将Jackson 2与Payara 4一起使用,并且我想在Payara 5中使用Jackson 2。
使用JAX-RS,我还希望避免更改注释等。
在Payara 5中,默认的Jsonb提供程序是Yasson。有禁用它并使用Jackson的想法吗?欢迎所有评论/想法:-)
注意: Yasson非常有趣,但是处理抽象类或接口的序列化/反序列化要比放置Jackson注释复杂得多。我目前的理解是,它需要实现JsonbSerializer / Deserializer,但实际上只能在字段/方法上使用序列化器/反序列化器(对于类开放一个问题,这将非常有帮助)。无论如何,迁移到Yasson意味着将根据需要实现许多序列化器/反序列化器(对于实体以及当然是集合),但是我想这很困难。
我有一个 web 应用程序,我试图在 Payara Micro 的 docker 容器中部署,但glassfish-resources.xml详细信息没有添加到服务器的microdomain.xml.
JDBC 定义非常基本,使用从 docker 命令设置的环境变量(这是位于MyApp.war/WEB-INF/glassfish-resources.xml:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE resources PUBLIC "-//GlassFish.org//DTD GlassFish Application Server 3.1 Resource Definitions//EN" "http://glassfish.org/dtds/glassfish-resources_1_5.dtd">
<resources>
<jdbc-resource pool-name="MyAppDB" jndi-name="jdbc/MyAppDB" enabled="true" ></jdbc-resource>
<jdbc-connection-pool datasource-classname="com.microsoft.sqlserver.jdbc.SQLServerDataSource"
name="MyAppDB"
res-type="javax.sql.DataSource">
<property name="User" value="${ENV=MY_APP_DATABASE_USER}"></property>
<property name="Password" value="${ENV=MY_APP_DATABASE_PASS}"></property>
<property name="DatabaseName" value="${ENV=MY_APP_DATABASE_NAME}"></property>
<property name="ServerName" value="${ENV=MY_APP_DATABASE_SERVER}"></property>
<property name="PortNumber" value="1433"></property>
</jdbc-connection-pool>
</resources>
Run Code Online (Sandbox Code Playgroud)
这是payara.env文件:
MY_APP_DATABASE_USER=someuser
MY_APP_DATABASE_PASS=somepass
MY_APP_DATABASE_NAME=MY_APP_DB
MY_APP_DATABASE_SERVER=192.168.10.110
Run Code Online (Sandbox Code Playgroud)
正如您从下面的日志中看到的,mysql-jdbc-7.0.0.jre8.jar确实被添加到类路径中。
码头工人命令:
docker run -p 8080:8080 \
--mount type=bind,src=$(pwd)/deployments,dst=/opt/payara/deployments \
--mount type=bind,src=$(pwd)/lib,dst=/opt/payara/lib …Run Code Online (Sandbox Code Playgroud) 我正在开发一个 JEE 应用程序,我想在应用程序启动时进行一些迁移。实际上,我正在使用payara-microDocker 作为服务器。由于未知原因,该代码从未被执行。
这是我的代码:
@Singleton
@Startup
public class FlywayMigration {
@PostConstruct
public void startMigration(){
System.out.println("Starting flyway migration");
}
}
Run Code Online (Sandbox Code Playgroud)
我在我的 pom 中添加了 javaee-api 作为依赖项:
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
<version>7.0</version>
<scope>provided</scope>
</dependency>
Run Code Online (Sandbox Code Playgroud)
这是我的 Dockerfile 的内容:
FROM payara/micro
COPY ./target/mywebapp.war $DEPLOY_DIR
Run Code Online (Sandbox Code Playgroud)
构建并运行 docker 镜像后,应用程序的日志显示该应用程序启动良好:
Payara Micro URLs
http://5b258e6a441a:8080/mywebapp
'mywebapp' REST Endpoints
GET /mywebapp/api/hello
GET /mywebapp/api/myresource
Run Code Online (Sandbox Code Playgroud)
谁能帮我找到解决方案?
在 Java EE 中,我使用 EJB 计时器服务来安排任务:
@Stateless
public class TestSchedule {
@Schedule(second = "*/30", minute = "*", hour = "*")
public void processFiles() {
}
}
Run Code Online (Sandbox Code Playgroud)
由于 Eclipse Micro Profile 不支持这种方法...实现这一点的常用方法是怎样的?
websphere-liberty payara payara-micro microprofile jakarta-ee
我有一个项目,需要使用 payara micro 运行 javaee7 微服务。因此,我使用 Maven 构建了一个 payara uber jar,因此我可以将其运行为
java -jar MicroService.jar
Run Code Online (Sandbox Code Playgroud)
(http://blog.payara.fish/creating-uber-jar-with-payara-micro)
如何设置 payara 的日志记录级别,以便仅显示警告和错误,而不显示 INFO?
payara-micro ×7
payara ×4
java ×2
docker ×1
jackson2 ×1
jakarta-ee ×1
java-ee ×1
java-ee-7 ×1
jax-rs ×1
jdbc ×1
jsonb ×1
jvm ×1
maven ×1
microprofile ×1