Java 当您将Containt类型设置为MediaType.APPLICATION_XML时,apachi tomcat report 500 erorr

Java 当您将Containt类型设置为MediaType.APPLICATION_XML时,apachi tomcat report 500 erorr,java,xml,tomcat,jax-rs,Java,Xml,Tomcat,Jax Rs,我正在使用appachi tomcat 10.0、jakarta jersey 3.0.2和eclipse 2021-03 我已经创建了动态web项目ib eclipse 创建webservice代码后,当以应用程序的形式返回对象时,显示为belo,XML服务器给出500个错误 HTTP Status 500 – Internal Server Error Type Status Report Message Internal Server Error Description The se

我正在使用appachi tomcat 10.0、jakarta jersey 3.0.2和eclipse 2021-03

我已经创建了动态web项目ib eclipse 创建webservice代码后,当以应用程序的形式返回对象时,显示为belo,XML服务器给出500个错误

HTTP Status 500 – Internal Server Error

Type Status Report

Message Internal Server Error

Description The server encountered an unexpected condition that prevented it from fulfilling the request.


Apache Tomcat/10.0.6
服务器日志如下所示

May 29, 2021 7:10:22 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version name:   Apache Tomcat/10.0.6
May 29, 2021 7:10:22 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server built:          May 8 2021 15:24:15 UTC
May 29, 2021 7:10:22 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Server version number: 10.0.6.0
May 29, 2021 7:10:22 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Name:               Windows 10
May 29, 2021 7:10:22 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: OS Version:            10.0
May 29, 2021 7:10:22 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Architecture:          amd64
May 29, 2021 7:10:22 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Java Home:             C:\Users\ranadhirw\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_15.0.2.v20210201-0955\jre
May 29, 2021 7:10:22 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Version:           15.0.2+7-27
May 29, 2021 7:10:22 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: JVM Vendor:            Oracle Corporation
May 29, 2021 7:10:22 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_BASE:         D:\eclipse-workspace-new\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
May 29, 2021 7:10:22 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: CATALINA_HOME:         C:\Program Files\Apache Software Foundation\Tomcat 10.0
May 29, 2021 7:10:22 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.base=D:\eclipse-workspace-new\.metadata\.plugins\org.eclipse.wst.server.core\tmp0
May 29, 2021 7:10:22 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 10.0
May 29, 2021 7:10:22 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dwtp.deploy=D:\eclipse-workspace-new\.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps
May 29, 2021 7:10:22 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -Dfile.encoding=Cp1252
May 29, 2021 7:10:22 PM org.apache.catalina.startup.VersionLoggerListener log
INFO: Command line argument: -XX:+ShowCodeDetailsInExceptionMessages
May 29, 2021 7:10:22 PM org.apache.catalina.core.AprLifecycleListener lifecycleEvent
INFO: The Apache Tomcat Native library which allows using OpenSSL was not found on the java.library.path: [C:\Users\ranadhirw\.p2\pool\plugins\org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_15.0.2.v20210201-0955\jre\bin;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;C:/Users/ranadhirw/.p2/pool/plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_15.0.2.v20210201-0955/jre/bin/server;C:/Users/ranadhirw/.p2/pool/plugins/org.eclipse.justj.openjdk.hotspot.jre.full.win32.x86_64_15.0.2.v20210201-0955/jre/bin;C:\Python\Python39\Scripts\;C:\Python\Python39\;C:\Program Files (x86)\Common Files\Oracle\Java\javapath;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\WINDOWS\System32\OpenSSH\;C:\Users\ranadhirw\AppData\Local\Microsoft\WindowsApps;;C:\Users\ranadhirw\OneDrive\Desktop;;.]
May 29, 2021 7:10:23 PM org.apache.coyote.AbstractProtocol init
INFO: Initializing ProtocolHandler ["http-nio-8080"]
May 29, 2021 7:10:24 PM org.apache.catalina.startup.Catalina load
INFO: Server initialization in [1888] milliseconds
May 29, 2021 7:10:24 PM org.apache.catalina.core.StandardService startInternal
INFO: Starting service [Catalina]
May 29, 2021 7:10:24 PM org.apache.catalina.core.StandardEngine startInternal
INFO: Starting Servlet engine: [Apache Tomcat/10.0.6]
May 29, 2021 7:10:29 PM org.apache.jasper.servlet.TldScanner scanJars
INFO: At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
May 29, 2021 7:10:31 PM org.glassfish.jersey.server.wadl.WadlFeature configure
WARNING: JAXBContext implementation could not be found. WADL feature is disabled.
May 29, 2021 7:10:32 PM org.apache.coyote.AbstractProtocol start
INFO: Starting ProtocolHandler ["http-nio-8080"]
May 29, 2021 7:10:32 PM org.apache.catalina.startup.Catalina start
INFO: Server startup in [8217] milliseconds
Hi I am Here
Hi 3 I am Here
休息很好

在此处输入代码
Book.java

package book;

import jakarta.ws.rs.GET;
import jakarta.ws.rs.Path;
import jakarta.ws.rs.Produces;
import jakarta.ws.rs.core.MediaType;

@Path("/book")
public class Book {
/*
    @GET
    @Produces(MediaType.TEXT_XML)
    public String sayHello() {
        
        String response = "<?xml version='1.0' ?>"+
                            "<hello> Hello XML </hello>";
            
        return response;
    }
    */
    @GET
    @Produces(MediaType.APPLICATION_XML)
    public BookDesc getBookDetails() {
        
        System.out.println("Hi I am Here");
        
        BookDesc b1 = new BookDesc();
        b1.setName("Java");
        b1.setPrice(400);
        System.out.println("Hi 3 I am Here");
        return b1;
    }
    
}
wen.xml

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>WSdemo</display-name>
    <servlet>
        <servlet-name>javaws</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>book</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>javaws</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>  
</web-app>

WSdemo
爪哇
org.glassfish.jersey.servlet.ServletContainer
jersey.config.server.provider.packages
书
1.
爪哇
/休息/*

日志中没有列出任何错误。在任何情况下,您都应该知道,XML在web上被认为是一种非常不安全的序列化格式,并导致了许多黑客行为,但在服务器日志中没有显示任何错误。如果您设置MediaType.APPLICATION\u JSON,它的工作方式与注释相同,那么您应该更喜欢JSON,而不是XML,因为它存在漏洞,请阅读警告并跟踪跟踪。您将找到答案。警告:找不到JAXBContext实现。WADL功能已禁用。我如何解决这个问题,因为我不使用maven
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" id="WebApp_ID" version="4.0">
  <display-name>WSdemo</display-name>
    <servlet>
        <servlet-name>javaws</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>book</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>javaws</servlet-name>
        <url-pattern>/rest/*</url-pattern>
    </servlet-mapping>  
</web-app>