gpt4 book ai didi

java - Java中如何给动态代理类添加注解?

转载 作者:太空宇宙 更新时间:2023-11-04 08:27:40 24 4
gpt4 key购买 nike

我正在尝试创建一个将 EJB 包装在 Web 服务周围的动态代理,因为应用程序服务器不支持在没有生成专有路由器项目的情况下创建基于 EJB 的 Web 服务。

我的想法是创建一个动态代理,以及如何使用 InitServlet 启动它。现在我有点困于弄清楚如何动态设置注释,这样我就不会收到以下错误。

class $Proxy0 has neither @WebSerivce nor @WebServiceProvider annotation
at com.sun.xml.internal.ws.server.EndpointFactory.verifyImplementorClass(EndpointFactory.java:277)
at com.sun.xml.internal.ws.transport.http.server.EndpointImpl.getPrimaryWsdl(EndpointImpl.java:273)
at com.sun.xml.internal.ws.transport.http.server.EndpointImpl.createEndpoint(EndpointImpl.java:213)
at com.sun.xml.internal.ws.transport.http.server.EndpointImpl.publish(EndpointImpl.java:143)

最佳答案

最近我也遇到了同样的问题。看来大多数人都说不可能。请参阅http://softwarecarnival.blogspot.be/2009/02/java-annotations-and-proxies.html

如果您拥有的接口(interface)是:

interface XXXInterface{
Result doStuff1(String param1)
}

解决方法是为代理创建一个委派者,该代理也将实现 Web 服务。

@WebService
public class WebServiceDelegateToXXXServer implements XXXInterface{

public WebServiceDelegateToXXXServer(XXXInterface actualImplementor){
this.actualImplementor = actualImplementor;
}

public Result doStuff1(String param1){
return actualImplementor.doStuff1(param1);
}
}

然后您将发布

XXXInterface proxy = createProxyAsXXXInterface();
Endpoint.publish(url, new WebServiceDelegateToXXXServer(proxy));

关于java - Java中如何给动态代理类添加注解?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8178619/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com