Maven Wildfly 插件 java util 日志记录正常

问题描述 投票:0回答:1

maven wildfly 插件

v4.2.1.Final
无法使用
Level.FINE
包记录
java.util.logging
及以下版本。我尝试按照文档here进行操作,但没有 java.util.logging 的链接。当运行
configuration.cli
脚本时,按照该页面上的步骤操作会出现以下错误。

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.wildfly.plugins:wildfly-maven-plugin:4.2.1.Final:dev (default-cli) on project jakartaee: Failed to execute commands: The command is not available in the current context (e.g. required subsystems or connection to the controller might be unavailable).

Caused by: org.apache.maven.plugin.MojoExecutionException: Failed to execute commands: The command is not available in the current context (e.g. required subsystems or connection to the controller might be unavailable).

java maven wildfly
1个回答
0
投票

项目树

基于您的示例项目(https://github.com/ragavendra/mavenLog

mavenLog
├── pom.xml
└── src
    └── main
        ├── java
        │   └── org
        │       └── eclipse
        │           └── jakarta
        │               └── servlet
        │                   ├── Echo1Servlet.java
        │                   └── Echo2Servlet.java
        └── webapp
            └── WEB-INF
                └── web.xml

更新pom.xml

更新1:

<wildfly-plugin.version>5.0.0.Final</wildfly-plugin.version>

添加:

<!--  jboss-logging API -->
<dependency>
    <groupId>org.jboss.logging</groupId>
    <artifactId>jboss-logging</artifactId>
    <version>3.5.3.Final</version>
    <scope>provided</scope>
</dependency>

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0"
         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>org.eclipse</groupId>
    <artifactId>hello-world</artifactId>
    <version>0.1-SNAPSHOT</version>
    <packaging>war</packaging>

    <name>jakartaee-hello-world</name>
    <description>
        This is a very simple Jakarta EE application generated by the official Eclipse Starter.
    </description>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.report.sourceEncoding>UTF-8</project.report.sourceEncoding>
        <maven.compiler.release>17</maven.compiler.release>
        <jakartaee-api.version>10.0.0</jakartaee-api.version>
        <wildfly.version>30.0.1.Final</wildfly.version>
        <compiler-plugin.version>3.11.0</compiler-plugin.version>
        <war-plugin.version>3.4.0</war-plugin.version>
        <!--
        <wildfly-plugin.version>4.2.1.Final</wildfly-plugin.version>
        -->
        <wildfly-plugin.version>5.0.0.Final</wildfly-plugin.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>jakarta.platform</groupId>
            <artifactId>jakarta.jakartaee-api</artifactId>
            <version>${jakartaee-api.version}</version>
            <scope>provided</scope>
        </dependency>

        <!--  jboss-logging API -->
        <dependency>
            <groupId>org.jboss.logging</groupId>
            <artifactId>jboss-logging</artifactId>
            <version>3.5.3.Final</version>
            <scope>provided</scope>
        </dependency>

    </dependencies>

    <build>
        <finalName>jakartaee-hello-world</finalName>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>${compiler-plugin.version}</version>
            </plugin>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>${war-plugin.version}</version>
                <configuration>
                    <failOnMissingWebXml>false</failOnMissingWebXml>
                </configuration>
            </plugin>

            <!-- Execute 'mvn clean package wildfly:dev' to run the application. -->
            <plugin>
                <groupId>org.wildfly.plugins</groupId>
                <artifactId>wildfly-maven-plugin</artifactId>
                <version>${wildfly-plugin.version}</version>
                <configuration>
                    <version>${wildfly.version}</version>
                    <server-config>standalone-full.xml</server-config>
                    <!-- Execute the script in offline mode -->
                    <offline>true</offline>
                    <scripts>
                        <script>${project.build.scriptSourceDirectory}/configuration.cli</script>
                    </scripts>
                </configuration>
            </plugin>
        </plugins>
    </build>
</project>

web.xml

<web-app version="6.0"
    xmlns="https://jakarta.ee/xml/ns/jakartaee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd">
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>
    <servlet>
        <description></description>
        <display-name>Echo1Servlet</display-name>
        <servlet-name>Echo1Servlet</servlet-name>
        <servlet-class>org.eclipse.jakarta.servlet.Echo1Servlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Echo1Servlet</servlet-name>
        <url-pattern>/echo1</url-pattern>
    </servlet-mapping>
    <servlet>
        <description></description>
        <display-name>Echo2Servlet</display-name>
        <servlet-name>Echo2Servlet</servlet-name>
        <servlet-class>org.eclipse.jakarta.servlet.Echo2Servlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Echo2Servlet</servlet-name>
        <url-pattern>/echo2</url-pattern>
    </servlet-mapping>
</web-app>

Echo1Servlet.java

使用

org.jboss.logging.Logger

package org.eclipse.jakarta.servlet;

import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.jboss.logging.Logger;

import java.io.IOException;

public class Echo1Servlet extends HttpServlet {
    private static final Logger logger = Logger.getLogger(Echo1Servlet.class);
    private static final long serialVersionUID = 1L;

    public Echo1Servlet() {
        super();
        logger.info("Echo1Servlet()");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        logger.info("doGet Served at: " + request.getContextPath());
        
        String msg = request.getParameter("msg");
        logger.info("msg = " + msg);
        response.getWriter().append("Served at: ").append(request.getContextPath()).append("\nmsg=" + msg);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        logger.info("doPost Served at: " + request.getContextPath());

        String msg = request.getParameter("msg");
        logger.info("msg = " + msg);
        response.getWriter().append("Served at: ").append(request.getContextPath()).append("\nmsg=" + msg);

    }

}

Echo2Servlet.java

使用

java.util.logging.Logger

package org.eclipse.jakarta.servlet;

import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

import java.io.IOException;
import java.lang.invoke.MethodHandles;
import java.util.logging.Logger;

public class Echo2Servlet extends HttpServlet {
    private static final long serialVersionUID = 1L;
    //private final Logger logger = Logger.getLogger(Echo2Servlet.class.getName());
    private final Logger logger = Logger.getLogger(MethodHandles.lookup().lookupClass().getName());

    public Echo2Servlet() {
        super();
        logger.info("Echo2Servlet()");
    }

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        logger.info("doGet Served at: " + request.getContextPath());

        String msg = request.getParameter("msg");
        logger.info("msg = " + msg);
        response.getWriter().append("Served at: ").append(request.getContextPath()).append("\nmsg=" + msg);
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        logger.info("doPost Served at: " + request.getContextPath());

        String msg = request.getParameter("msg");
        logger.info("msg = " + msg);
        response.getWriter().append("Served at: ").append(request.getContextPath()).append("\nmsg=" + msg);
        doGet(request, response);
    }

}

配置环境变量

编辑

.bashrc

nano ~/.bashrc

添加环境变量

WILDFLY_HOME

export WILDFLY_HOME=/your-path/wildfly-30.0.1.Final

启动野蝇

cd $WILDFLY_HOME/bin
./standalone.sh

部署到 Wildfly

mvn wildfly:deploy

测试

测试 1 - Echo1Servlet - org.jboss.logging.Logger

curl http://localhost:8080/jakartaee-hello-world/echo1?msg=Hello

测试 2 - Echo1Servlet - org.jboss.logging.Logger

curl -X POST -d "msg=Hello" http://localhost:8080/jakartaee-hello-world/echo1

测试 3 - Echo2Servlet - java.util.logging.Logger

curl http://localhost:8080/jakartaee-hello-world/echo2?msg=Hello

测试 4 - Echo2Servlet - java.util.logging.Logger

curl -X POST -d "msg=Hello" http://localhost:8080/jakartaee-hello-world/echo2

检查输出

wildfly-30.0.1.最终/独立/日志

服务器日志

2024-09-26 12:53:13,412 INFO  [org.eclipse.jakarta.servlet.Echo1Servlet] (default task-1) Echo1Servlet()
2024-09-26 12:53:13,412 INFO  [org.eclipse.jakarta.servlet.Echo1Servlet] (default task-1) doGet Served at: /jakartaee-hello-world
2024-09-26 12:53:13,412 INFO  [org.eclipse.jakarta.servlet.Echo1Servlet] (default task-1) msg = Hello
2024-09-26 12:53:19,903 INFO  [org.eclipse.jakarta.servlet.Echo1Servlet] (default task-1) doPost Served at: /jakartaee-hello-world
2024-09-26 12:53:19,906 INFO  [org.eclipse.jakarta.servlet.Echo1Servlet] (default task-1) msg = Hello
2024-09-26 12:54:58,597 INFO  [org.eclipse.jakarta.servlet.Echo2Servlet] (default task-1) Echo2Servlet()
2024-09-26 12:54:58,597 INFO  [org.eclipse.jakarta.servlet.Echo2Servlet] (default task-1) doGet Served at: /jakartaee-hello-world
2024-09-26 12:54:58,598 INFO  [org.eclipse.jakarta.servlet.Echo2Servlet] (default task-1) msg = Hello
2024-09-26 12:55:03,037 INFO  [org.eclipse.jakarta.servlet.Echo2Servlet] (default task-1) doPost Served at: /jakartaee-hello-world
2024-09-26 12:55:03,038 INFO  [org.eclipse.jakarta.servlet.Echo2Servlet] (default task-1) msg = Hello
2024-09-26 12:55:03,038 INFO  [org.eclipse.jakarta.servlet.Echo2Servlet] (default task-1) doGet Served at: /jakartaee-hello-world
2024-09-26 12:55:03,038 INFO  [org.eclipse.jakarta.servlet.Echo2Servlet] (default task-1) msg = Hello

A001

结论:

  • (1)没有专门的配置configuration.cli,所以在管理界面中看不到

    org.eclipse.jakarta

  • (2) 使用

    org.jboss.logging.Logger
    java.util.logging.Logger
    可以将日志输出到Wildfly的
    server.log

  • (3)只关注要测试的关键点,所以我添加了简单的Echo1Servlet和Echo2Servlet来做简单的日志测试

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.