簡體   English   中英

Spring restController return not found 404 on wildfly

[英]Spring restController return not found 404 on wildfly

我們有一個帶有 Spring RestController 的休息項目,如下所示:

   @RestController("/new")
   public class NewController {
    @ResponseBody
    @RequestMapping(value = "/test", method = RequestMethod.GET)
    public String testControl() {
        return "works";
    }

但是這個項目不包含啟動它的引導類。 相反,有一個實現AbstractAnnotationConfigDispatcherServletInitializer spring 類的內部 jar 依賴項:

public class AbstractWebInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {

    @Override
    protected Class<?>[] getRootConfigClasses() {
        return new Class[] { AppSecurityConfig.class, DatabaseConfig.class };
    }

    @Override
    protected Class<?>[] getServletConfigClasses() {
        return new Class[] { ServletContextConfig.class };
    }

    @Override
    protected String[] getServletMappings() {
        return new String[] { "/*" };
    }

    @Override
    protected Filter[] getServletFilters() {
        return new Filter[] { new CORSFilter() };
    }
}

這個rest項目被編譯成一個.ear文件部署到wildfly服務器:EAR pom.xml

<plugin>
                <artifactId>maven-ear-plugin</artifactId>
                <version>2.10.1</version>
                <configuration>
                    <defaultLibBundleDir>APP-INF/lib</defaultLibBundleDir>
                    <skinnyWars>true</skinnyWars>
                    <version>6</version>
                    <earSourceDirectory>src/main/app</earSourceDirectory>
                    <modules>
                        <webModule>
                            <groupId>br.coop.unimed</groupId>
                            <artifactId>cmb-rest</artifactId>
                            <contextRoot>/api</contextRoot>
                        </webModule>
                    </modules>
                </configuration>
            </plugin>

當將這只耳朵部署到野蠅時,日志說:

17:11:10,033 INFO [io.undertow.servlet](ServerService 線程池 - 95)在類路徑上未檢測到 Spring WebApplicationInitializer 類型 17:11:10,620 INFO [io.undertow.servlet](ServerService 線程池 - 95)Spring在類路徑上檢測到 WebApplicationInitializers:[org.springframework.boot.autoconfigure.jersey.JerseyAutoConfiguration$JerseyWebApplicationInitializer@8a0cb6a, br.coop.unimed.config.security.SecurityWebApplicationInitializer@457597f, br.coop.unimed.config.AbstractWebInitializera]

17:11:23,815 信息 [org.wildfly.extension.undertow](ServerService 線程池 - 95)WFLYUT0021:注冊的 Web 上下文:服務器“默認服務器”的“/api”

但是當嘗試訪問 http:localhost:8080/api/new/test 或 http:locallhost:8080/api/test 時,它返回 404 - Not found。

為了清楚起見,我從另一家公司繼承了這個項目,該公司在另一台服務器上運行這個耳朵,即 weblogic。 由於weblogic非常重,我試圖在wildfly服務器上以相同的方式運行,但盡管ear已成功部署在服務器上並且spring上下文也已正確注冊,但我還是沒有成功。

有誰知道可能會發生什么?

請將您的代碼更改為

@RestController
@RequestMapping("/new")
public class NewController {
  @ResponseBody
  @RequestMapping(value = "/test", method = RequestMethod.GET)
  public String testControl() {
      return "works";
  }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM