起因:最近在一个古老框架structs上开发新功能,由于之前没接触过,故此记录
新增接口,
接口类:
@Path("/A")
@Produces({ MediaType.APPLICATION_JSON })
public interface Money {@POST@Path("/B")ResultVO getMoney(@Context HttpServletRequest request, @RequestParam("param") String param);
}实现类:
@Component("bigMoney")
public class BigMoneyimplements Money{
}
本以为到此就OK了,结果调用直接报404.
对于用惯了springbooot的来说,一下小懵,毕竟这些bean的管理都交给了容器,开发者只需要使用正确的注解就能正常使用了。
经过查看报错信息,查看资料,查案其它类的写法,发现需要在structs中就需要自己手动去添加了
在配置xml对应的标签中添加(简写)
<jaxrs:server id="A" address="/C"><jaxrs:serviceBeans><ref bean="bigMoney" />
这个标签对应的解释是这样的:
这段代码片段是一个使用 JAX-RS(Java API for RESTful Web Services)框架的示例。JAX-RS 是一种用于创建基于 RESTful 架构的 Web 服务的 Java API。
在这段代码中,
<jaxrs:server>
元素定义了一个 JAX-RS 服务器,并指定了它的 ID 为 "A",地址为 "/C"。这意味着该服务器将监听根路径 "/C" 上的请求。
<jaxrs:serviceBeans>
元素用于注册服务实现类,这些类将作为 JAX-RS 服务提供方的一部分。在这个例子中,它包含一个<ref>
子元素,用于引用名为 "bigMoney" 的服务实现类。通过将服务实现类 "bigMoney" 注册到
<jaxrs:serviceBeans>
元素中,JAX-RS 服务器可以自动识别和调用相应的方法来处理来自客户端的请求。需要注意的是,这段代码只是 JAX-RS 服务器的配置部分,还需要其他代码来创建具体的服务实现类、定义资源和方法等