已经有映射的bean方法

2024-01-07

我收到以下异常:

</pre></p><p><b>root cause</b> <pre>org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping#0': 
Invocation of init method failed; nested exception is java.lang.IllegalStateException: 
Ambiguous mapping found. Cannot map 'sdtm-controller' bean method 
public java.util.List&lt;java.lang.String&gt; com.sas.hls.clc.clinicalstandards.sdtm.SDTM_Controller.getVersions()
to {[/getVersions],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}: 
There is already 'SDTM_Controller' bean method
public java.util.List&lt;java.lang.String&gt; com.sas.hls.clc.clinicalstandards.sdtm.SDTM_Controller.getVersions() mapped.
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1486)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:524)
    org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461)
    org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295)
    org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223)
    org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292)
    org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
    org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:607)
    org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932)
    org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479)
    org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:647)
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:598)
    org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:661)
    org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:517)
    org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:458)
    org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:138)
    javax.servlet.GenericServlet.init(GenericServlet.java:212)
    org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:555)
    org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
    org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    java.lang.Thread.run(Thread.java:662)
</pre></p><p><b>root cause</b> <pre>java.lang.IllegalStateException: Ambiguous mapping found. Cannot map 'sdtm-controller' bean method 
public java.util.List&lt;java.lang.String&gt; com.sas.hls.clc.clinicalstandards.sdtm.SDTM_Controller.getVersions()
to {[/getVersions],methods=[GET],params=[],headers=[],consumes=[],produces=[],custom=[]}: There is already 'SDTM_Controller' bean method
public java.util.List&lt;java.lang.String&gt; com.sas.hls.clc.clinicalstandards.sdtm.SDTM_Controller.getVersions() mapped.

我的控制器类只有一个名为 getVersions() 的方法。当我在控制器上使用 AutoWired 时,我的应用程序工作正常,并且没有显式地将任何 bean 连接在一起。但后来我转而定义一些 bean,以便我可以连接到项目中其他人编写的 bean。我开始收到重复的 beans 异常,因此我注释掉了 @Autowired 注释。为什么我会得到这个。我的部署环境中是否仍然存在自动装配的残余?

@Controller
public class SDTM_Controller {
    private SDTM_Service service;

//  @Autowired
    public SDTM_Controller(SDTM_Service service){
        this.service = service;
    }

    public SDTM_Controller(){

    }

    public void setSDTM_Service(SDTM_Service service){
        this.service = service;
    }

    // URL: sdtm/getVersions

    @RequestMapping(value="/getVersions", method=RequestMethod.GET)
    public @ResponseBody List<String> getVersions(){
        return service.getVersions();
    }

我的 web.xml 包含以下内容:

<servlet>
    <servlet-name>sdtm</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/sdtm-servlet.xml</param-value>
    </init-param>
</servlet>
<servlet-mapping>
    <servlet-name>sdtm</servlet-name>
    <url-pattern>/sdtm/*</url-pattern>
</servlet-mapping>

我有一个名为 sdtm-servlet.xml 的文件,其中包含以下内容:

    <context:component-scan base-package="com.sas.hls.clc.clinicalstandards.sdtm" />    
<mvc:annotation-driven/>

    <bean id="sdtm-controller" class="com.sas.hls.clc.clinicalstandards.sdtm.SDTM_Controller" >    
            <property name="SDTM_Service" ref="SDTM_Service" />  
    </bean>

最后,我有一个定义服务的 services-config.xml 文件。

   <bean id="sdtmService" class="com.sas.hls.clc.clinicalstandards.sdtm.SDTM_ServiceImpl" >
        <property name="clinicalStandardsInterface" ref="clinicalStandardsInterface" />
   </bean>

Your <mvc:annotation-driven/>标签告诉 spring 遍历你的类来寻找注释并创建注释类的实例。你的<bean id="sdtm-controller .../>还创建控制器的实例。因此,创建的第二个会出现错误,因为已经创建了一个。正如 M. Deinum 所指出的,您只需要其中之一,并且由于您正在使用注释,因此只需删除 bean 配置即可。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

已经有映射的bean方法 的相关文章

随机推荐

  • 使用 Rails 4 Activerecord 将多个列计数合并到单个查询中

    Rails 4 1 Postgres 9 3 部署到 Heroku 我正在尝试减少对数据库的调用次数 我有一个大表 调查 有多个布尔列 例如role composer role performer 等等 控制器有多个查询 例如 sample
  • 如何在React JS中保留浏览器后退按钮上应用的过滤器

    在我的应用程序中 所有列表页面上都有过滤器 现在根据要求 我想在浏览器后退按钮上保留应用的过滤器 例如 假设用户已在销售列表页面上应用了过滤器 之后 他点击一条记录进入销售编辑页面 现在 如果用户点击浏览器后退按钮 那么那些应用的过滤器应该
  • 如何使用多字符分隔符分割字符串并维护分隔符

    使用 VB NET 我有一个字符串 RES00012 Some value RES00034 Another value 我想用 RES 作为分隔符 RES00012 Some value and RES00034 Another valu
  • Visual Studio 不要打开新的浏览器实例

    当我尝试在 Windows 10 上的 Visual Studio 2017RC 中运行 Web 应用程序时 它会打开一个新的浏览器实例 在我的例子中是 chrome 我也尝试过使用 Internet Explorer 情况相同 并且浏览器
  • xmpp 中的带内注册是什么?

    很抱歉不得不问 但我不知道这个术语的含义 也找不到简单的定义 我想知道我是否需要启用此功能 以便用户使用我正在编写的 iphone 客户端在我的 openfire 服务器上注册一个全新的帐户 Thanks 带内注册意味着在您的服务器上没有帐
  • DEVELOPER_TOKEN_NOT_APPROVED AdWords

    美好的一天 伙计们 我正在开发一个项目 需要设置 Google Adwords 帐户才能使用 API 我正在使用 Python 客户端库 当我运行测试应用程序时 出现 DEVELOPER TOKEN NOT APPROVED 错误 经过对这
  • 如何在 androidTest 上正确模拟 ViewModel

    我目前正在为片段编写一些 UI 单元测试 其中之一 Test就是看一个对象列表是否正确显示 这是不是整合测试 因此我希望mock the ViewModel 片段的变量 class FavoritesFragment Fragment pr
  • 如何检测假用户(爬虫)和cURL

    其他一些网站使用 cURL 和虚假 http 引用来复制我的网站内容 我们有什么方法可以检测 cURL 或不是真正的网络浏览器吗 没有什么神奇的解决方案可以避免自动抓取 人类能做的一切 机器人也能做 只有一些解决方案会让这项工作变得更加困难
  • JIRA:查找与用户相关的所有问题

    在 JIRA 中 如何查找所有项目中与用户相关的所有问题 简单的查询搜索仅产生全文结果 即 仅涉及名称被提及的问题 而不是名称已被分配 已报告 已抄送等的问题 我在这里的目的是寻找与我相关的股票会计票据 我使用的是 JIRA 3 13 as
  • ExtJS 6 按关联模型进行网格组

    Context 不久前我用过这个answer https stackoverflow com a 19198773 1842261实现远程排序和过滤 使用 关联模型 关联模型字段 格式 我可以轻松解析服务器端代码中的表达式以查询数据库 Pr
  • 如何使用 JavaScript 清除/重置 formData()?

    我正在使用formData进行Ajax图像上传 当我第一次提交时它将成功上传 并再次单击发布按钮该图像也发布到服务器 我认为formData不会清除 My Code postsubmitimage click function var fo
  • jQuery UI 自动完成 DownArrow UpArrow

    我在 jQuery 自动完成和移动向下箭头和向上箭头方面遇到一些问题 问题似乎在于
  • MySQL:多类别产品的 SQL 和 DB

    我正在开发一个现在拥有数百万条记录的网站 抱歉 无法透露哪个网站 最初它只有几百条记录 因此下面的查询是可以接受的 查询 SELECT FROM WHERE 类别 LIKE 3 但现在它只是杀死数据库 因为对于每个查询 它都必须使用上述查询
  • WSO2 身份服务器 JWT 访问令牌

    当使用密码 grant type 登录时 我尝试从 WSO2 Identity Server 接收 JWT access token 但我找不到任何方法来配置它 当我登录时 我得到一个 guid 作为 access token 我发现了这个
  • 如何使我的自定义配置部分表现得像一个集合?

    我需要如何编写我的自定义ConfigurationSection这样它既是一个节处理程序又是一个配置元素集合 通常 你有一个类继承自ConfigurationSection 然后它有一个继承自的类型的属性ConfigurationEleme
  • 更新和删除 CakePHP 中的唯一连接关系

    编辑 我需要帮助的是删除 topic posts 表中主题和帖子之间的所有关系 以便清理关系并删除旧关系 然后代码的其余部分应该可以正常工作 因为所有问题都将得到解决 因为我们在添加关系之前删除了它们 在我的 CakePHP 应用程序中 我
  • 我可以仅使用 jQuery 进行验证还是需要 PHP? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我了解两种语言之间的差异 但是当涉及到表单验证时 jQuery 够用吗 我可以在 jQuery JavaScript 中验证我的表单 然后执行
  • 改变jstree节点的颜色

    有没有人尝试过使用类型插件更改 jstree 特定节点的颜色 而且我想避免该节点上的单击事件 我需要这样做以防止用户选择同一节点 有关如何更改被单击的任何节点的颜色的示例 function document ready my jstree
  • 在图书馆项目中使用 Room DB

    我正在尝试将房间数据库集成到图书馆项目中 apply plugin com android library compile android arch persistence room runtime rootProject roomVers
  • 已经有映射的bean方法

    我收到以下异常 p b root cause b p pre org springframework beans factory BeanCreationException Error creating bean with name org