2014-12-07 5 views
1

Я пытаюсь использовать асинхронную функцию обработки запросов HTTP с помощью RESTEasy в примере проекта Camunda BPM (встроенный источник-источник). Чтобы проверить, существуют ли существующие pom file, я ставлю операторы импорта для Suspend и AsynchronousResponse в RestProcessEngineDeployment.java. Но компиляция maven не удалась.Ошибка компиляции: не удается найти символ Suspend and AsynchronousResponse

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project camunda-quickstart-embedded-spring-rest: Compilation failure: Compilation failure: 
[ERROR] /home/vagrant/works/eclipse-workspace/camunda-bpm-examples/deployment/embedded-spring-rest/src/main/java/org/camunda/bpm/example/loanapproval/rest/RestProcessEngineDeployment.java:[7,19] cannot find symbol 
[ERROR] symbol: class Suspend 
[ERROR] location: package javax.ws.rs 
[ERROR] /home/vagrant/works/eclipse-workspace/camunda-bpm-examples/deployment/embedded-spring-rest/src/main/java/org/camunda/bpm/example/loanapproval/rest/RestProcessEngineDeployment.java:[8,24] cannot find symbol 
[ERROR] symbol: class AsynchronousResponse 
[ERROR] location: package javax.ws.rs.core 

POM file выглядит нормально. Он содержит необходимую зависимость:

<dependency> 
    <groupId>org.jboss.resteasy</groupId> 
    <artifactId>resteasy-jaxrs</artifactId> 
    <version>3.0.8.Final</version> 
</dependency> 

web.xml file также выглядит хорошо. Он содержит filter и filter-mapping, как это предлагается в RESTEasy user guide.

<filter> 
    <filter-name>Resteasy</filter-name> 
    <filter-class> 
     org.jboss.resteasy.plugins.server.servlet.FilterDispatcher 
    </filter-class> 
    <init-param> 
     <param-name>javax.ws.rs.Application</param-name> 
     <param-value>org.camunda.bpm.example.loanapproval.rest.RestProcessEngineDeployment</param-value> 
    </init-param> 
    </filter> 

    <filter-mapping> 
     <filter-name>Resteasy</filter-name> 
     <url-pattern>/*</url-pattern> 
    </filter-mapping> 

Я пропустил что-нибудь? Есть ли какие-нибудь подсказки относительно того, как я могу понять проблему?

+1

Может быть, вы хотите [ 'javax.ws.rs.container.AsyncResponse'] (https://docs.oracle.com/javaee/7/api/javax/ws/rs/container/AsyncResponse.html) и ['@ javax.ws.rs.container.Suspended'] (https: // docs .oracle.com/JavaEE/7/API/javax/WS/RS/контейнер/Suspended.html). Трудно сказать, не видя какого-то кода. –

+0

@peeskillet, Вы правы! Я помещаю неправильные операторы импорта. Я должен был заметить, что операторы импорта и фактический интерфейс/аннотация используются в [Руководстве пользователя RESTEasy] (http://docs.jboss.org/resteasy/docs/3.0.9.Final/userguide/html_single/index. HTML # Asynchronous_HTTP_Request_Processing). –

+0

@peeskillet, пожалуйста, разместите комментарий как ответ. Я хотел бы принять ответ. Он решил проблему. –

ответ

1

Было сложно сказать, не видя кода, но ошибка Maven была довольно хорошим сигналом. Я просто не мог понять, почему кто-то будет использовать AsynchronousResponse и Suspend. Увидеть ваш link in the comment теперь имеет смысл. Вот отрывок из ссылки

import javax.ws.rs.Suspend; 
import javax.ws.rs.core.AsynchronousResponse; 

@Path("/") 
public class SimpleResource { 
    @GET 
    @Path("basic") 
    @Produces("text/plain") 
    public void getBasic(@Suspended final AsyncResponse response) 

Печальная вещь, автор даже переключается между AsyncResponse и AsynchronousResponse в описании.

Во всяком случае, ошибка может быть решена с помощью правильного импорта: