gpt4 book ai didi

java - 使用 Spring 从外部项目注入(inject)方面类时出现问题

转载 作者:行者123 更新时间:2023-11-28 23:34:22 25 4
gpt4 key购买 nike

如果这个问题已经在某个地方找到了答案,我深表歉意,我环顾四周,没有看到任何我可以利用的东西。在 eclipse 中启动我的 tomcat 服务器时出现此异常:

java.lang.ClassNotFoundException: com.sample.aspects.SomeAspect
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1360)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1206)
at org.springframework.util.ClassUtils.forName(ClassUtils.java:246)
at org.springframework.beans.factory.support.AbstractBeanDefinition.resolveBeanClass(AbstractBeanDefinition.java:395)
at org.springframework.beans.factory.support.AbstractBeanFactory.doResolveBeanClass(AbstractBeanFactory.java:1346)
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveBeanClass(AbstractBeanFactory.java:1317)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.determineTargetType(AbstractAutowireCapableBeanFactory.java:623)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.predictBeanType(AbstractAutowireCapableBeanFactory.java:592)
at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:1394)
at org.springframework.beans.factory.support.AbstractBeanFactory.isFactoryBean(AbstractBeanFactory.java:957)
at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:705)
at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:658)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:624)
at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:672)
at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:543)
at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:484)
at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:136)
at javax.servlet.GenericServlet.init(GenericServlet.java:212)
at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1161)
at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:981)
at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4058)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4364)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:719)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:578)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:622)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:288)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:413)

这是我正在使用的 servlet.xml

<bean id="someAspect"
class="com.sample.aspects.SomeAspect" />

<aop:aspectj-autoproxy proxy-target-class="true" />

com.sample.aspects.SomeAspect 是我使用 eclipse 类路径和 gradle 导入的外部项目中的一个类。我假设我只是在我的类路径上做错了什么,并告诉 Spring 如何初始化我的方面,但我有点不知道如何正确地做到这一点。有什么建议么?我真的更愿意将方面保留在 Web 应用程序之外,但我想知道这是否可以通过 Spring AOP 实现。

如果有帮助,这就是我在 gradle 项目中所做的

dependencies{
...
compile project(':sample-projectwithaspectsclasses')
}

com.sample.aspects.SomeAspect 的代码在 sample-projectwithaspectsclasses 中

最佳答案

您只定义了对外部项目的类路径依赖,这就是编译没有失败的原因,但是您在运行时需要这个文件,您可以手动将这个 jar 添加到您的 Web 项目的 lib 文件夹中,或者我认为您可以这样做这在启动配置中使用 eclipse 并添加运行时依赖项。

关于java - 使用 Spring 从外部项目注入(inject)方面类时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26025941/

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