GVKun编程网logo

How to solve the error "Field service in com.xx.xxx.xxxx required a bean of type ''com.aa...

26

在这篇文章中,我们将带领您了解Howtosolvetheerror"Fieldserviceincom.xx.xxx.xxxxrequiredabeanoftype''com.aa...的全貌,同时,

在这篇文章中,我们将带领您了解How to solve the error "Field service in com.xx.xxx.xxxx required a bean of type ''com.aa...的全貌,同时,我们还将为您介绍有关Aborting commit: ''XXXXXXXX''remains in conflict错误、Android格式化手机号xxx xxxx xxxx、BeanNotOfRequiredTypeException:Bean named ''XXXX'' is expected to be of type ''XXX'' ...、C# Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).的知识,以帮助您更好地理解这个主题。

本文目录一览:

How to solve the error

How to solve the error "Field service in com.xx.xxx.xxxx required a bean of type ''com.aa...

When runung a SpringBoot demo, I  got a error as following:

***************************
APPLICATION FAILED TO START
***************************

Description:

Field service in com.hy.empcloud.EmpControl required a bean of type ''com.hy.empcloud.EmpService'' that could not be found.

The injection point has the following annotations:
- @org.springframework.beans.factory.annotation.Autowired(required=true)


Action:

Consider defining a bean of type ''com.hy.empcloud.EmpService'' in your configuration.

After I add a annotation "@Service" to the class com.hy.empCloud.EmpService, the error was solved.

package com.hy.empcloud;

import java.util.ArrayList;
import java.util.List;

import org.springframework.stereotype.Service;

// To provide service of employees
@Service
public class EmpService {
    private List<Emp> emps;
    
    public EmpService(){
        emps=new ArrayList<Emp>();
        
        emps.add(new Emp(1,"Andy",41));
        emps.add(new Emp(2,"刘德华",42));
        emps.add(new Emp(3,"Bill",43));
        emps.add(new Emp(4,"比尔",44));
    }
    
    public List<Emp> getAll(){
        return emps;
    }
    
    public Emp find(long id) throws Exception{
        
        for(Emp e:emps) {
            if(e.getId()==id) {
                return e;
            }
        }
    
        throw new Exception("No such employee whose''s id="+id);
    }
}

Here is the demo.

--END--

2019 年 8 月 24 日 14 点 24 分

Aborting commit: ''XXXXXXXX''remains in conflict错误

Aborting commit: ''XXXXXXXX''remains in conflict错误

今天在提交项目文件到本地SVN时提示错误如下:

过期:”global.php“在事务”21-1“,
You have to update your working copy first.

运行update更新后再次提交又出现如下错误:

svn: Commit failed (details follow):svn: Aborting commit: ''global.php'' remains in conflict查了一下SVN的手册才知道原来是多个版本之间遇到冲突。此时你需要解决冲突(合并别人的修改)。
--------------------------------------------------------------------------------

举一个例子,Sally修改了sandwich.txt,Harry刚刚改变了他的本地拷贝中的这个文件并且提交到服务器,Sally在提交之前更新它的工作拷贝得到了冲突:

$ svn update C sandwich.txt Updated to revision 2. $ ls -1 sandwich.txt sandwich.txt.mine sandwich.txt.r1 sandwich.txt.r2

在这种情况下,Subversion不会允许你提交sandwich.txt,直到你的三个临时文件被删掉。

$ svn commit --message "Add a few more things" svn: Commit failed (details follow): svn: Aborting commit: ''/home/sally/svn-work/sandwich.txt'' remains in conflict

如果你遇到冲突,三件事你可以选择:

“手动”合并冲突文本(检查和修改文件中的冲突标志)。

用某一个临时文件覆盖你的工作文件。

运行svn revert <filename>来放弃所有的修改。

一旦你解决了冲突,你需要通过命令svn resolved让Subversion知道,这样就会删除三个临时文件,Subversion就不会认为这个文件是在冲突状态了。

$ svn resolved sandwich.txt Resolved conflicted state of ''sandwich.txt''

手工合并冲突
第一次尝试解决冲突让人感觉很害怕,但经过一点训练,它简单的像是骑着车子下坡。

这里一个简单的例子,由于不良的交流,你和同事Sally,同时编辑了sandwich.txt。Sally提交了修改,当你准备更新你的版本,冲突发生了,我们不得不去修改sandwich.txt来解决这个问题。首先,看一下这个文件:

$ cat sandwich.txtTop piece of breadMayonnaiseLettuceTomatoProvolone<<<<<<< .mineSalamiMortadellaProsciutto=======SauerkrautGrilled Chicken>>>>>>> .r2Creole MustardBottom piece of bread小于号、等于号和大于号串是冲突标记,并不是冲突的数据,你一定要确定这些内容在下次提交之前得到删除,前两组标志中间的内容是你在冲突区所做 的修改:

<<<<<<< .mineSalamiMortadellaProsciutto=======后两组之间的是Sally提交的修改冲突:

=======SauerkrautGrilled Chicken>>>>>>> .r2通常你并不希望只是删除冲突标志和Sally的修改—当她收到三明治时,会非常的吃惊。所以你应该走到她的办公室或是拿起电话告诉Sally,你没 办法从从意大利熟食店得到想要的泡菜。一旦你们确认了提交内容后,修改文件并且删除冲突标志。

Top piece of breadMayonnaiseLettuceTomatoProvoloneSalamiMortadellaProsciuttoCreole MustardBottom piece of bread现在运行svn resolved,你已经准备好提交了:

$ svn resolved sandwich.txt$ svn commit -m "Go ahead and use my sandwich, discarding Sally''s edits."记住,如果你修改冲突时感到混乱,你可以参考subversion生成的三个文件—包括你未作更新的文件。你也可以使用第三方的合并工具检 验这三个文件。

拷贝覆盖你的工作文件
如果你只是希望取消你的修改,你可以仅仅拷贝Subversion为你生成的文件替换你的工作拷贝:

$ svn updateC  sandwich.txtUpdated to revision 2.$ ls sandwich.*sandwich.txt  sandwich.txt.mine  sandwich.txt.r2  sandwich.txt.r1$ cp sandwich.txt.r2 sandwich.txt$ svn resolved sandwich.txt下注:使用svn revert
如果你得到冲突,经过检查你决定取消自己的修改并且重新编辑,你可以恢复你的修改:

$ svn revert sandwich.txtReverted ''sandwich.txt''$ ls sandwich.*sandwich.txt注意,当你恢复一个冲突的文件时,不需要再运行svn resolved。

现在我们准备好提交修改了,注意svn resolved不像我们本章学过的其他命令一样需要参数,在任何你认为解决了冲突的时候,只需要小心运行svn resolved,—一旦删除了临时文件,Subversion会让你提交这文件,即使文件中还存在冲突标记。

提交你得修改
最后!你的修改结束了,你合并了服务器上所有的修改,你准备好提交修改到版本库。

svn commit命令发送所有的修改到版本库,当你提交修改时,你需要提供一些描述修改的日志信息,你的信息会附到这个修订版本上,如果信息很简短,你可以在命令行中使用--message(-m)选项:

$ svn commit --message "Corrected number of cheese slices." Sending sandwich.txt Transmitting file data . Committed revision 3.

然而,如果你把写日志信息当作工作的一部分,你也许会希望通过告诉Subversion一个文件名得到日志信息,使用--file选项:

$ svn commit --file logmsg Sending sandwich.txt Transmitting file data . Committed revision 4.

如果你没有指定--message或者--file选项,Subversion会自动地启动你最喜欢的编辑器来编辑日志信息。

版本库不知道也不关心你的修改作为一个整体是否有意义,它只检查是否有其他人修改了同一个文件,如果别人已经这样做了,你的整个提交会失败,并且提示你一个或多个文件已经过时了:

$ svn commit --message "Add another rule" Sending rules.txt svn: Commit failed (details follow): svn: Out of date: ''rules.txt'' in transaction ''g''

此刻,你需要运行svn update来处理所有的合并和冲突,然后再尝试提交。

我们已经覆盖了Subversion基本的工作周期,还有许多其它特性可以管理你得版本库和工作拷贝,但是只使用前面介绍的命令你就可以很轻松的工作了。

 

Android格式化手机号xxx xxxx xxxx

Android格式化手机号xxx xxxx xxxx

1.输入框EditText布局

2.EditText设置监听

et1.addTextChangedListener(new TextWatcher());

3.监听中实现

 1    et1.addTextChangedListener(new TextWatcher() {
 2             @Override
 3             public void beforeTextChanged(CharSequence s, int start, int count, int after) {
 4 
 5             }
 6 
 7             @Override
 8             public void onTextChanged(CharSequence s, int start, int before, int count) {
 9                 String contents = s.toString();
10                 int length = contents.length();
11                 if(length == 4){
12                     if(contents.substring(3).equals(new String(" "))){ // -
13                         contents = contents.substring(0, 3);
14                         et1.setText(contents);
15                         et1.setSelection(contents.length());
16                     }else{ // +
17                         contents = contents.substring(0, 3) + " " + contents.substring(3);
18                         et1.setText(contents);
19                         et1.setSelection(contents.length());
20                     }
21                 } else if(length == 9){
22                     if(contents.substring(8).equals(new String(" "))){ // -
23                         contents = contents.substring(0, 8);
24                         et1.setText(contents);
25                         et1.setSelection(contents.length());
26                     }else{// +
27                         contents = contents.substring(0, 8) + " " + contents.substring(8);
28                         et1.setText(contents);
29                         et1.setSelection(contents.length());
30                     }
31                 }
32 
33             }
34 
35             @Override
36             public void afterTextChanged(Editable s) {
37                 String tel = et1.getText().toString().trim();
38                 tel = tel.replace(" ", "");
39                 if (tel.length() == 11) {
40                     couldClick = true;   //手机号
41                 } else {
42                     couldClick = false;  //不满足条件
43                 }
44             }
45         });

 

BeanNotOfRequiredTypeException:Bean named ''XXXX'' is expected to be of type ''XXX'' ...

BeanNotOfRequiredTypeException:Bean named ''XXXX'' is expected to be of type ''XXX'' ...

    直接说结论,前提是在服务实现层启用了 @Transactional(rollbackFor = Exception.class) 注解,然后 controller 层注入的服务应该是接口,但是不知道哪个傻吊注入了实现。详细看后面。

    今天测试项目的时候一直报错,找这个错误花费了两三个小时,错误来源于粗心大意,注入的接口弄错了,但不是我弄错了,是公司的其他同事,协作开发。

  由于昨天开发、测试一切正常,但是我新写的代码,启动就报错,最开始我百度,基本都是告诉我注入 bean 错误,name 有问题,重名等等,但是我仔细核查都没问题。

  后来我一点点的添加自己的代码,测试,发现当我的服务层 Server 方法加上 @Transactional(rollbackFor = Exception.class) 注解,启动就报 RT 错误,这我纳闷了,然后慢慢看注入 bean 的 name 看是否重名,没有,编译也不报错,但我看到这个的时候,简直爆炸。如下图。

  

  

  当时就想骂人了,谁这么注解的,浪费我时间,难怪会报错,至于深层原因,技术水平时间有限,我也不知道 Orz。

  如果有类似错误,但是不是 bean 的 name 等错误,可以看看是不是这个原因。

  附完整错误代码:

六月 23, 2019 6:55:08 下午 org.apache.catalina.core.ApplicationContext log
严重: StandardWrapper.Throwable
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name ''noticeController'': Unsatisfied dependency expressed through field ''nts''; nested exception is org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named ''noticeService'' is expected to be of type ''service.NoticeService'' but was actually of type ''com.sun.proxy.$Proxy211''
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:588)
	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
	at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668)
	at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:634)
	at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:682)
	at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:553)
	at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494)
	at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:171)
	at javax.servlet.GenericServlet.init(GenericServlet.java:158)
	at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1231)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1144)
	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1031)
	at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4901)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5188)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)
Caused by: org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named ''noticeService'' is expected to be of type ''service.NoticeService'' but was actually of type ''com.sun.proxy.$Proxy211''
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.checkBeanNotOfRequiredType(DefaultListableBeanFactory.java:1510)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.checkBeanNotOfRequiredType(DefaultListableBeanFactory.java:1517)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1489)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1104)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066)
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
	... 31 more

六月 23, 2019 6:55:09 下午 org.apache.catalina.core.StandardContext loadOnStartup
严重: Servlet [spring] in web application [/mainWeb] threw load() exception
org.springframework.beans.factory.BeanNotOfRequiredTypeException: Bean named ''noticeService'' is expected to be of type ''.service.NoticeService'' but was actually of type ''com.sun.proxy.$Proxy211''
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.checkBeanNotOfRequiredType(DefaultListableBeanFactory.java:1510)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.checkBeanNotOfRequiredType(DefaultListableBeanFactory.java:1517)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoMatchingBeanFound(DefaultListableBeanFactory.java:1489)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1104)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1066)
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:585)
	at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88)
	at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:366)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
	at org.springframework.web.servlet.FrameworkServlet.configureAndRefreshWebApplicationContext(FrameworkServlet.java:668)
	at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:634)
	at org.springframework.web.servlet.FrameworkServlet.createWebApplicationContext(FrameworkServlet.java:682)
	at org.springframework.web.servlet.FrameworkServlet.initWebApplicationContext(FrameworkServlet.java:553)
	at org.springframework.web.servlet.FrameworkServlet.initServletBean(FrameworkServlet.java:494)
	at org.springframework.web.servlet.HttpServletBean.init(HttpServletBean.java:171)
	at javax.servlet.GenericServlet.init(GenericServlet.java:158)
	at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1231)
	at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1144)
	at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1031)
	at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:4901)
	at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5188)
	at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1409)
	at org.apache.catalina.core.ContainerBase$StartChild.call(ContainerBase.java:1399)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
	at java.lang.Thread.run(Thread.java:745)

  

 

C# Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).

C# Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).

一、问题描述

  在做C# 的 Guid 转换时,出现这个问题:Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx). 中文翻译是:guid应包含32位数字和4个破折号(XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX)。

二、解决方案

  看我们转换的字符串是否满足这个条件:guid应包含32位数字和4个破折号(XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXX),不满足修改满足即可!

三、案例

  我在转换的时候,由于我需要转换的字符串,不满足guid的规则,才出现这个错误。

仔细观察,我需要转换的字符串,根本就不满足 guid 的特点,当我把 ar 中的 “ " ” 号去掉就可以了。

OK,转换完成!

 

---------------修改2019年05月09日---------------------

因为我的 DataId 本来就是一个Json 字符串,所以没有必要去使用 Replace() 、Split(),直接使用 JsonConvert 操作多好,所以我改为:

var items = JsonConvert.DeserializeObject<List<Guid>>(_recordBookRepository.Get(input.RecordBookId).DataId);

让专业的方法,处理专业的事情,是否是最优解。

 

---------------修改2019年05月23日---------------------

判断 Guid 是否为空。

传入的参数:

/// <summary>
        /// id
        /// </summary>
        public Guid? StatGroupId { get; set; }

判断是否为空:

var boolStatGroup = input.StatGroupId.HasValue && input.StatGroupId != Guid.Empty;

 

我们今天的关于How to solve the error "Field service in com.xx.xxx.xxxx required a bean of type ''com.aa...的分享已经告一段落,感谢您的关注,如果您想了解更多关于Aborting commit: ''XXXXXXXX''remains in conflict错误、Android格式化手机号xxx xxxx xxxx、BeanNotOfRequiredTypeException:Bean named ''XXXX'' is expected to be of type ''XXX'' ...、C# Guid should contain 32 digits with 4 dashes (xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx).的相关信息,请在本站查询。

本文标签: