Tag: 代理类

是否有运行时代理创建库,它支持保留代理类的注释?

使用例如cglib或javassist代理创建代理时 ,通过创建代理目标的子类来实现此代理。 但是,这意味着此代理上的注释将丢失。 当一个类由两个库处理时,这是有问题的,其中: 第一个库需要创建给定类的代理才能运行。 第二个库通过从中读取注释来处理对象。 对于第二个库,当同时使用第一个库时,注释已消失。 问题是:是否存在具有高级API的运行时代码生成库,可以轻松保留代理类的注释?

以编程方式实现以各种指定方式组合同一接口的某些实例的接口

实现以各种指定方式组合同一接口的某些实例的接口的最佳方法是什么? 我需要为多个接口执行此操作,并且我希望最小化样板并仍然实现良好的效率,因为我需要将其用于关键生产系统。 这是问题的草图。 抽象地说,我有一个通用的组合器类,它接受实例并指定各种组合器: class Combiner { I[] instances; T combineSomeWay(InstanceMethod method) { // … method.call(instances[i]) … combined in some way … } // more combinators } 现在,假设我想在许多其他界面中实现以下界面: Interface Foo { String bar(int baz); } 我想最终得到这样的代码: class FooCombiner implements Foo { Combiner combiner; @Override public String bar(final int baz) { return combiner.combineSomeWay(new InstanceMethod { @Override […]

Axis HTTP Vs Axis HTTPS代理设置

部署在Weblogic Cluster上的我的Java应用程序调用两个Web服务,如下所示。 •它通过HTTPS将SOAP客户端请求发送到Internet上的外部应用程序。(通过Axis 1.4创建的Java类) •此后它通过HTTP将SOAP客户端请求发送到内部应用程序(存在于连接到我的LAN的另一个节点上)。(通过JAX-WS创建的Java类:Jdeveloper向导) 为了达到第一个WS,我必须使用以下代码为Web服务客户端设置https代理设置: System.setProperty(“https.proxyHost”, myProxyIP); System.setProperty(“https.proxyPort”, myProxyPort); 而第二个Web服务不需要此代理设置,因为它们已在网络上可访问。 我的问题如下: 如果我调用第一个服务(具有代理设置的服务),然后调用另一个服务,则Axis客户端尝试使用相同的代理设置调用这些服务,即使我在我之前从系统属性中删除了代理设置即将通过写作来介绍2ns WS System.setProperty(“http.proxySet”, “false”); System.getProperties().remove(“http.proxyHost”); System.getProperties().remove(“http.proxyPort”); AxisProperties.setProperty(“http.proxyHost”, null); AxisProperties.setProperty(“http.proxyPort”, null); 我读somwhere使用nonProxyHosts.But我很困惑,如果我应该写 System.setProperty(“https.nonProxyHosts”,”secws.secondwsint.com”); 要么 System.setProperty(“http.nonProxyHosts”,”secws.secondwsint.com”); http ot https,因为需要绕过的是HTTP,而我们设置代理的是HTTPS。 我也读过一篇博客: AxisProperties.setProperty(“https.proxyHost”, “bla1.bla1”); AxisProperties.setProperty(“https.proxyPort”, “8080”); AxisProperties.setProperty(“https.nonProxyHosts”, “secws.secondwsint.com”); 但再一次让天使用https.nonProxyHosts或http.nonProxyHosts 哪一个建议在我的java程序System.setProperty或AxisProperties.setProperty ,重要的是我应该使用http ot https编写该代码行另外,还有其他选择吗?

Casting Proxies – 获取ClassCastException

当我将动态代理类转换为我想要的对象时,我会有些奇怪。 在运行时,在某些条件下,我收到ClassCastException。 为了更好地解释这一点,这里是我想要使用的类/接口的定义。 括号已被放置在(应该)不相关的任何扩展接口上。 public interface CommandSender (extends Permissible) public interface ConsoleCommandSender extends CommandSender, (Conversable) public interface Player extends (HumanEntity, Conversable), CommandSender, (OfflinePlayer, PluginMessageRecipient) 完整的Javadoc可以在这里找到: http : //jd.bukkit.org/apidocs/org/bukkit/command/CommandSender.html 现在,这是我的代理类的代码: public class CommandSignsMessagingProxy implements InvocationHandler { private Object sender; private Object receiver; private boolean silent; public static Object newInstance(Object proxy) { return newInstance(proxy, proxy, false); } […]

代理实例如何将自身传递给InvocationHandler?

这是Proxy类的方法签名: Object java.lang.reflect.Proxy.newProxyInstance(ClassLoader loader, Class[] interfaces, InvocationHandler h) throws IllegalArgumentException 我检查代理类中newProxyInstance的源代码,我找不到代理对象将自己传递给InvocationHandler方法的位置 public Object invoke(Object proxy, Method method, Object[] args) throws Throwable; 有人知道吗? 谢谢

如何从动态代理中解包原始对象

解包动态代理以检索下面的原始对象的最佳方法是什么? 使用java.lang.reflect.Proxy.newProxyInstance()创建了动态代理 谢谢。