首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何解决从角5到java REST服务调用的POST请求错误问题?

如何解决从角5到java REST服务调用的POST请求错误问题?
EN

Stack Overflow用户
提问于 2018-09-28 01:01:34
回答 1查看 0关注 0票数 0

我尝试使用restful服务从angular 5应用程序向java应用程序提交POST请求时,从tomcat上运行的java应用程序收到以下错误:

java:445)org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1115)atg.apache.coyote.AbstractProtocol $ AbstractConnectionHandler.process(AbstractProtocol.java:637)at org.apache.tomcat.util .net.JIoEndpoint $ SocketProcessor.run(JIoEndpoint.java:318)at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)at java.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615 )atg.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)at java.lang.Thread.run(Thread.java:745)引起:java.lang.AbstractMethodError:javax。 ws.rs.core.Response.getStatusInfo()Ljavax / WS / RS /核心/响应$ StatusType; 在javax.ws.rs的javax.ws.rs.WebApplicationException.computeExceptionMessage(WebApplicationException.java:211)。53)atg.jboss.seam.resteasy.ResteasyResourceAdapter.getResource(ResteasyResourceAdapter.java:121)at org.jboss.seam.servlet.SeamResourceServlet.service(SeamResourceServlet.java:80)at javax.servlet.http.HttpServlet.service (HttpServlet.java:731)在org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)... 44多个2018年9月26日下午11点26分22秒org.apache.catalina.core.StandardWrapperValve在路径[/ jboss-seam-jpa]的上下文中调用SEVERE:servlet [Seam Resource Servlet]的Servlet.service()抛出异常[Servlet执行引发异常],原因是java.lang.AbstractMethodError:javax.ws.rs .core.Response.getStatusInfo()Ljavax / WS / RS /核心/响应$ StatusType; 在javax.ws的javax.ws.rs.WebApplicationException.computeExceptionMessage(WebApplicationException.java:211)。

Angular 5应用程序代码:

代码语言:javascript
复制
const httpOptions = {
    headers: new HttpHeaders({ 'Accept': 'application/json', 'Content-Type': 'application/json' })
};
private baseUrl = 'http://localhost:8080/jboss-seam-jpa/seam/resource/rest';

 addLocation(locationTemp: Location): Observable<any> {
    return this.http.post(`${this.baseUrl}/Trips/Location`, JSON.stringify(locationTemp), httpOptions);
}

Java代码:

代码语言:javascript
复制
@POST
@Path("Location")
@Consumes("application/json")
public Response addLocation(Location location) {
        myDao.addLocation(location);
        return Response.ok().entity("Location added successfully").build();
}

java应用程序中的一些jar:

在此处输入图像描述
在此处输入图像描述

这是web.xml的核心过滤器配置,请注意@GET请求从角应用程序到java应用程序正常工作。

代码语言:javascript
复制
<filter>
        <filter-name>CorsFilter</filter-name>
        <filter-class>com.thetransactioncompany.cors.CORSFilter</filter-class>
        <init-param>
            <param-name>cors.allowed.origins</param-name>
            <param-value>*</param-value>
        </init-param>
        <init-param>
            <param-name>cors.allowed.methods</param-name>
            <param-value>GET,POST,HEAD,OPTIONS,PUT,DELETE</param-value>
        </init-param>
        <init-param>
           <param-name>cors.supportedHeaders</param-name>
           <param-value>Content-Type, Accept, Authorization</param-value>
        </init-param>
    </filter>
    <filter-mapping>
        <filter-name>CorsFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
EN

回答 1

Stack Overflow用户

发布于 2018-09-28 10:15:53

从堆栈跟踪看起来你正在从浏览器的不同主机和端口做请求,而Tomcat不喜欢这样。我看到两种可能的解决方案,一种是将Tomcat CORS过滤器配置为接受来自所有主机和端口的请求,或者只接受所需的解决方案,尽管这可能不是希望在生产中使用的解决方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100006171

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档