- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我们有许多 Web 服务客户端应用程序,它们是我们主要面向客户的应用程序和后端 Web 服务之间的接口(interface)。这些 Web 服务应用程序生成自己的 JAXWS stub 代码以直接与 Web 服务和实现代码交互,从而在 JAXWS 代码和任何希望使用它的应用程序之间提供干净的接口(interface)。在过去的几周里,我们在这些方面遇到了一些小问题,但大多数问题都已得到解决。
当需要将它们集成到面向客户的应用程序中时,我们遇到了很多问题,主要集中在 JDK1.5 和 1.6 的不兼容性上。这些现在已经解决了,但是我们遇到了另一个我们无法解决的问题。 Web 服务客户端使用 AOP 来设置常见的东西,例如 header 凭证、异常处理和限制:
<aop:config>
<aop:pointcut id="pointcut" expression="execution(* MyService.*(..))" />
<aop:aspect id="throttling" ref="throttlingAdvisor">
<aop:around pointcut-ref="pointcut" method="doThrottle" />
</aop:aspect>
<aop:aspect id="errorHandling" ref="errorHandlingAdvisor">
<aop:around pointcut-ref="pointcut" method="handleExceptions" />
每个方面都引用一个 POJO bean,这些 bean 包括配置中声明的方法,方法参数类型为 org.aspectj.lang.ProceedingJoinPoint,用于提取我正在拦截的方法的参数。
我们为每个 Web 服务客户端提供其中一个(在 applicationContext-webservicename.xml 中)。此 xml 文件包含在打包的 JAR 中,该 JAR 包含在面向客户的应用程序中,并导入到由面向客户应用程序的 web.xml 加载的主 applicationContext.xml 中。
我们对这些网络客户端进行了大量的单元测试,它们都通过了测试,证明它们各自没有任何问题。当所有服务都包含在面向客户的应用程序中时,我们会在启动时收到 java.lang.NoClassDefFoundError: ProceedingJoinPoint 异常(我们使用带有 JDK1.5.0_17 的 tomcat 5.5)。
我在 JavaDoc 中查找了 java.lang.NoClassDefFoundError 以防它有特殊含义,看起来 JVM 认为该类不存在。然后我寻找包含它声称找不到的类的 jar(aspectjrt-1.5.4.jar 和 aspectjweaver-1.5.4.jar),这些类有重复所以我尝试依次删除每个 jar 以查看会发生什么,完全相同的错误。
我是否缺少必需的依赖项?这个问题是否有一个共同的原因(我昨天搜索过这个没有找到太多)?任何帮助将不胜感激。
最佳答案
在我们设法找到这个问题的解决方案之后,我们在检测到 SVN 提交时使用 Bamboo 来构建我们的项目。虽然在构建依赖项目时设置了 bamboo 环境以匹配我们的开发机器,但它产生了这个奇怪的问题。
我们仍然不确定它为什么这样做,但与此同时我们正在手动构建和部署这个特定项目。
我对遇到类似问题的任何人的建议是,将自己与内部 Maven 存储库隔离开来,并在本地重建所有项目。
感谢大家的帮助。
关于java.lang.NoClassDefFoundError : ProceedingJoinPoint 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1666600/
@Around("toSomething()") public void check(ProceedingJoinPoint pJPoint){ Object[] args=pJPoint.g
我正在尝试使用@Aspect 实现一个拦截器。我需要获取类级别的注释 这是我的拦截器 @Aspect public class MyInterceptor { @Around("executi
我正在尝试模拟一个 ProceedingJoinPoint 类,但我在模拟一个方法时遇到困难。 这是调用模拟类的代码: ... // ProceedingJoinPoint joinPoint Obj
谁能告诉我Joinpoint和Proceedingjoinpoint有什么区别? 切面类的方法中什么时候使用Joinpoint和Proceedingjoinpoint? 我在我的 AspectJ 类中
我有以下注释。 MyAnnotation.java @Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @in
我在看 Javadocs for ProceedingJoinPoint/JoinPoint在 AspectJ 中,但他们似乎没有告诉我方法 getArgs 的预期行为是什么是当空值作为一个或多个参数
AspectJ的JoinPoint是一个接口(interface),ProceedingJoinPoint也是一个扩展Joinpoint的接口(interface)。 但是,当我在某个方面使用它们时,
我们有许多 Web 服务客户端应用程序,它们是我们主要面向客户的应用程序和后端 Web 服务之间的接口(interface)。这些 Web 服务应用程序生成自己的 JAXWS stub 代码以直接与
有没有办法从 ProceedingJoinPoint 获取 MethodSignature 而无需向下转型? private String toEventString(ProceedingJo
我有一个方面可以处理所有具有自定义注释的方法。 注解有一个枚举参数,我必须获取方面的值: @Target(ElementType.METHOD) @Retention(RetentionPolicy.
我是 AOP 新手,我需要在我的项目中使用 AspectJ。我需要使用周围建议,但使用它时遇到问题,我的 .aj 类中有以下代码, pointcut checkUser(ProceedingJoinP
这个问题很简短:有没有办法从 apsectj ProceedingJoinPoint 获取 Method 对象? 目前我正在做 Class[] parameterTypes = new Class[j
大家好,我在运行我的应用程序时在 Spring-Boot 上收到以下错误: java.lang.IllegalStateException: Failed to load ApplicationCon
我正在尝试更改传递给 JdbcOperation 查询方法的参数。基本上,传递给 jdbcTemplate.query() 方法的第一个参数(字符串)的 SQL 语句需要更改。我想将任何语句包含在附加
如果 AspectJ 的工作方式与 EJB 拦截器的工作方式相同,这个问题就不会存在。 考虑 EJB 拦截器方式的基本场景: @AroundInvoke public Object log(final
我是一名优秀的程序员,十分优秀!