我想将REST请求转发到另一台服务器。
我将JAX-RS与Jersey和Tomcat一起使用。我尝试通过设置See Other响应和添加Location标题来进行尝试,但这并不是真正的前进。
如果我使用:
request.getRequestDispatcher(url).forward(request, response);
Run Code Online (Sandbox Code Playgroud)
我得到:
java.lang.StackOverflowError:如果网址是相对路径java.lang.IllegalArgumentException:路径http://website.com不能以/字符开头(我认为转发仅在同一servlet上下文中是合法的)。如何转发请求?
我们要将 JAX-RS 实现从 Jersey 切换到 Apache CXF 3.0。我只是无法弄清楚基本身份验证是如何以 Apache CXF 方式完成的。我在 CXF 周围找到的所有示例WebClient,而不是 JAX-RS Client API。
这就是泽西岛的工作:
Client client = ClientBuilder.newClient();
client.register(HttpAuthenticationFeature.basic(config.getUsername(),config.getPassword()));
Run Code Online (Sandbox Code Playgroud)
如何使用 Apache CXF 做到这一点?
JPA 2.1引入了类型转换器.我找到了基于单个实体属性的转换器示例.
是否可以基于多个实体属性创建类型转换器?
有一些例子吗?
是否可以在运行时决定是否应同步或异步处理对资源端点的Jersey REST请求?我们举一个简单的例子.
同步版本:
@Path("resource")
public class Resource {
@GET
@Produces({MediaType.TEXT_PLAIN})
public Response get() {
return Response.ok("Hello there!").build();
}
}
Run Code Online (Sandbox Code Playgroud)
异步版本:
@Path("resource")
public class Resource {
@GET
@Produces({MediaType.TEXT_PLAIN})
public void get(@Suspended final AsyncResponse r) {
r.resume(Response.ok("Hello there!").build()); // usually called somewhere from another thread
}
}
Run Code Online (Sandbox Code Playgroud)
根据某些参数,我想在运行时决定是应该同步还是异步处理GET请求.http://server/resource在两种情况下,资源endpoint()的URL 必须相同.这可能吗?
当然,正如您在上面的示例中所看到的,同步版本可以通过简单调用以异步方式伪造AsyncResponse.resume(...).但是,我会避免创建异步响应的开销.
鉴于Enum:
public enum CarStatus {
NEW("Right off the lot"),
USED("Has had several owners"),
ANTIQUE("Over 25 years old");
public String description;
public CarStatus(String description) {
this.description = description;
}
}
Run Code Online (Sandbox Code Playgroud)
我们如何设置它,以便杰克逊可以将此枚举的实例序列化和反序列化为以下格式.
{
"name": "NEW",
"description": "Right off the lot"
}
Run Code Online (Sandbox Code Playgroud)
默认是简单地将枚举序列化为字符串.例如"NEW".
任何人都可以建议我在以下两种方式中使用REST重定向URL的最佳方法:
1. httpResponse.sendRedirect("URL");
2. Response.temporaryRedirect(new URI("path"));
Run Code Online (Sandbox Code Playgroud) 我正在构建一个在任何地方使用JSON的Web服务.
现在我需要一个HTTP方法来检索资源的属性(例如,像read-only,write,ACL这样的属性).看起来只有一种HTTP方法用于此目的:PROPFIND.
但是规范明确指示使用XML.
无论如何,使用带有JSON接口的动词是疯了吗?我也担心这PROPFIND是WebDAV扩展的一部分.
如果这是不行的,那么在面向JSON的Web服务中检索资源属性的推荐动词或推荐方法是什么?
我正在尝试在 WildFly 服务器中部署我的 Web 服务,但出现以下异常:
6:44:06,265 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC000001: Failed to start service jboss.deployment.unit."MyService.war".INSTALL: org.jboss.msc.service.StartException in service jboss.deployment.unit."MyService.war".INSTALL: WFLYSRV0153: Failed to process phase INSTALL of deployment "MyService.war"
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:154)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1948)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1881)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)Caused by: org.jboss.wsf.spi.WSFException: JBWS024109: Could not get WSDL contract for endpoint com.sun.xml.ws.tx.coord.v11.endpoint.RegistrationPortImpl at /wsdls/wsc11/wstx-wscoor-1.1-wsdl-200702.wsdl
at org.jboss.wsf.stack.cxf.metadata.MetadataBuilder.getWsdlLocationURL(MetadataBuilder.java:283)
at org.jboss.wsf.stack.cxf.metadata.MetadataBuilder.build(MetadataBuilder.java:90)
at org.jboss.wsf.stack.cxf.deployment.aspect.DescriptorDeploymentAspect.start(DescriptorDeploymentAspect.java:42)
at org.jboss.as.webservices.deployers.AspectDeploymentProcessor.deploy(AspectDeploymentProcessor.java:73)
at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:147)
... 5 more
Run Code Online (Sandbox Code Playgroud)
我该如何解决上述问题?
我正在实施类似于:https : //login.microsoftonline.com/common/discovery/v2.0/keys
Spring 启动 JWT 应用程序,用于生成和验证 JWT 令牌。我将生成许多公钥/私钥(我不想用一个密钥生成所有令牌。一对密钥将生成寿命较短的令牌,第二个将生成更长的令牌......)我将使用公钥创建端点/密钥. 问题是:如何在我的应用程序中将正确的公钥与私钥连接起来进行验证?
第二个:如何生成上述密钥(使用 kty":"RSA"、"use":"sig"、kid... 等字段)是否有任何模式可以做到?