相关疑难解决方法(0)

Jersey/*servlet映射导致静态资源出现404错误

如果我将Jersey的url-pattern映射到2.0版本中的/*,则会导致404所有静态资源(例如/index.html).我的web.xml有:

<servlet>
  <servlet-name>JerseyApp</servlet-name>
  <servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
  <init-param>
    <param-name>javax.ws.rs.Application</param-name>
    <param-value>org.frog.jump.JerseyApp</param-value>
  </init-param>
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <servlet-name>JerseyApp</servlet-name>
  <url-pattern>/*</url-pattern>
</servlet-mapping>
Run Code Online (Sandbox Code Playgroud)

如何使用相同的网址格式提供静态内容?

java jersey

19
推荐指数
2
解决办法
2万
查看次数

当包含Jersey REST时,Spring引导不提供静态内容

我尝试从spring启动应用程序提供index.html(位于main/resources/static下)时收到HTTP 404错误.但是,如果我从项目中删除基于Jersey的JAX-RS类,则http:// localhost:8080/index.html可以正常工作.

以下是主要课程

@SpringBootApplication
public class BootWebApplication {

    public static void main(String[] args) {
        SpringApplication.run(BootWebApplication.class, args);
    }
}
Run Code Online (Sandbox Code Playgroud)

我不确定我在这里遗失了什么.

谢谢

jersey jersey-2.0 spring-boot

6
推荐指数
1
解决办法
2180
查看次数

Spring Boot 2 Actuator 端点无法通过 Jersey 访问

我有一个非常简单的演示应用程序,使用 Spring Boot 2.0.x.RELEASE

在我的 POM 中我有:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.0.4.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <java.version>1.8</java.version>
    <spring-cloud.version>Finchley.RELEASE</spring-cloud.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jersey</artifactId>
        <exclusions>
            <exclusion>
                <!-- We're using undertow as our embedded web container instead of tomcat -->
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-tomcat</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

    <!-- Embedded web container- serves Jersey resources -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-undertow</artifactId>
    </dependency>

    <!-- Support for Spring Actuator & Health Check Endpoints -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.hateoas</groupId>
        <artifactId>spring-hateoas</artifactId>
    </dependency>
    <dependency> …
Run Code Online (Sandbox Code Playgroud)

java jersey-2.0 spring-boot spring-boot-actuator

5
推荐指数
1
解决办法
2619
查看次数

JAX RS 和 WebSockets 与 Spring Boot 中的 Stomp 冲突

我正在使用 Spring-Boot。我想将 JAX RS 作为我的基本 REST-API 与 WebSockets(使用 Stomp)结合使用。然而,这两个库似乎以冲突告终。

我有以下 WebSocketConfig:

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig extends AbstractWebSocketMessageBrokerConfigurer {

@Override
public void configureMessageBroker(MessageBrokerRegistry config) {
    config.enableSimpleBroker("/topic");
    config.setApplicationDestinationPrefixes("/app");
}

@Override
public void registerStompEndpoints(StompEndpointRegistry registry) {
    registry.addEndpoint("/hello").setAllowedOrigins("http://localhost:8000").withSockJS();
}
Run Code Online (Sandbox Code Playgroud)

以及以下 AppConfig:

public class AppConfig extends ResourceConfig {
   public AppConfig() {
      register(...);
   }
}
Run Code Online (Sandbox Code Playgroud)

如果两个类都被注释,就会出现问题。如果我注释掉 AppConfig,我的套接字连接将毫无问题地连接。在其他情况下,我的 REST-Api 工作但无法建立 WebSocket-Connection(404 异常)。我认为问题出在 Jax RS 组件中,该组件可能尝试“使用”/hello 调用并且没有找到映射到它的资源。

我的问题是:如何告诉 Jax RS 忽略 /hello 调用,以便将其传递给 WebSocketMessageBroker 或使其彼此相邻工作?

java rest spring web-services

3
推荐指数
1
解决办法
1243
查看次数