【问题标题】:URL path not working in when deployed in WebLogic server部署在 WebLogic 服务器中时 URL 路径不起作用
【发布时间】:2022-11-22 19:22:41
【问题描述】:

在此输入

我正在尝试构建 REST API,我已经使用 Maven 创建了 Web 应用程序项目,并在 pom.xml 文件中包含了 jersey 依赖项。我还在 web-inf 文件夹中包含了 web.xml 文件和 weblogic.xml 文件。部署并执行 URL 路径时,index.jsp 工作正常。但其他 URL 不工作它显示未找到。找不到问题所在。

Web.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>Rest service</display-name>
  <servlet>
        <servlet-name>Jersey Web Application</servlet-name>
        <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
        <init-param>
            <param-name>jersey.config.server.provider.packages</param-name>
            <param-value>com.vno.testaddress</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>
    <servlet-mapping>
        <servlet-name>Jersey Web Application</servlet-name>
        <url-pattern>/webapi/*</url-pattern>
    </servlet-mapping>
</web-app>

网络逻辑.xml

    <?xml version="1.0" encoding="UTF-8"?>
<wls:weblogic-web-app
    xmlns:wls="http://xmlns.oracle.com/weblogic/weblogic-web-app"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd http://xmlns.oracle.com/weblogic/weblogic-web-app http://xmlns.oracle.com/weblogic/weblogic-web-app/1.9/weblogic-web-app.xsd">
    <wls:weblogic-version>14.1.1.0</wls:weblogic-version>
    <wls:context-root>/address</wls:context-root>
    <wls:container-descriptor>
        <prefer-web-inf-classes>false</prefer-web-inf-classes>
        <wls:prefer-application-packages>
            <wls:package-name>org.slf4j.*</wls:package-name>

            <wls:package-name>org.glassfish.jersey.*</wls:package-name>
            <wls:package-name>io.swagger.core.*</wls:package-name>
            <wls:package-name>io.swagger.parser.*</wls:package-name>
        </wls:prefer-application-packages>
    </wls:container-descriptor>
</wls:weblogic-web-app>

Java代码:

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

/**
 * Hello world!
 *
 */
@Path("myresource")
public class Testaddress 
{
     @GET
        @Produces(MediaType.TEXT_PLAIN)
        public String getIt() {
            return "Hello world!";
        }
}

错误:

我正在尝试使用此网址:http://192.168.77.10:7001/testaddress-0.0.1-SNAPSHOT/webapi/myresource并期待结果为“Hello World!”但是显示没有找到。

【问题讨论】:

    标签: java rest weblogic java-web-start


    【解决方案1】:

    我看到 2 个潜在问题:

    1. 您的类 TestAddress 没有定义包。如果已定义(但未在此处显示),我认为它应该是“com.vno.testaddress”以符合在 web.xml 中为您的 ServletContainer 定义的 init-param>
    2. 为“wls:context-root”参数定义的值是“/address”。因此,要访问您的课程并使其正常工作,我认为您的网址应该是“http://192.168.77.10:7001/address/webapi/myresource”

      让我知道

    【讨论】:

      猜你喜欢
      • 2020-02-06
      • 2022-12-15
      • 2017-09-18
      • 1970-01-01
      • 2016-10-04
      • 2017-08-24
      • 1970-01-01
      • 1970-01-01
      • 2019-08-08
      相关资源
      最近更新 更多