bug總結1

1.org.apache.ibatis.binding.BindingExceptionjava

背景:Spring+SpringMVC+MyBatis整合 報錯: Invalid bound statement (not found) 錯誤緣由:沒有找到對應路徑下的方法 解決方法:redis

  • mapper.xml中的namespace要與對應的mapper接口路徑相同
  • mapper.xml中的每個操做的id要與方法名對應
  • mapper.xml要與對應的mapper接口在同一包下
  • 若是使用的是maven項目,須要在pom.xml的裏面添加以下代碼
<resources>
      <resource>
        <directory>src/main/java</directory>
        <includes>
          <include>**/*.xml</include>
        </includes>
        <filtering>true</filtering>
      </resource>
    </resources>
複製代碼

2.java.io.FileNotFoundExceptionspring

背景:使用Spring包下的StreamUtils.copy()方法進行文件copy 錯誤緣由:目標目錄路徑出錯 解決方法: 複製文件夾的路徑,在文件加最後面加上兩個「\」+文件名,須要將「\」與計算機路徑上的「\」進行匹配。 shell

image.png

3.Could NOT find resource [logback-test.xml]數據庫

背景:使用log4j和self4j日誌報錯Could Not find resouce [logback.groovy]及Could Not find resource[logback-test.xml] express

image.png
解決方法: 在maven中添加以下依賴

<dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.5.6</version>
            <type>jar</type>
        </dependency>

        <dependency>
            <groupId>slf4j-simple</groupId>
            <artifactId>slf4j-simple</artifactId>
            <version>1.7.25</version>
        </dependency>

        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-core</artifactId>
            <version>1.1.2</version>
        </dependency>

        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.14</version>
            <scope>provided</scope>
        </dependency>
複製代碼

4.org.springframework.beans.factory.BeanCreationExceptionapache

mapper沒法使用@Autowired註解自動注入 緣由:ubuntu

  • mybatis配置文件沒有掃描到
  • 沒有掃描到mapper.xml文件,須要注意basePackage
  • mapper.java和mapper.xml之間沒有聯繫起來

5.org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'com.hxx.dubbo.service.FindUserDubboService': Cannot resolve reference to bean 'findUserDubboService' while setting bean property 'ref'vim

場景:使用dubbo時服務沒法啓動windows

解決:注意provider端的服務實現類的引用書寫

6.java.lang.ClassNotFoundException: javax.jms.JMSContext

使用的spring版本是5.1.5.RELEASE,activeMQ的版本是5.9.0,這個版本的Spring須要使用JMS 2.0版本,但spring-jms的依賴沒有自動導入JMS 2.0,而activemq-all會導入JMS 1.1的依賴,這就致使出現版本問題 解決: 添加JMS2.0的依賴

<dependency>
    <groupId>javax.jms</groupId>
    <artifactId>javax.jms-api</artifactId>
    <version>2.0.1</version>
</dependency>
複製代碼

爲了防止衝突,能夠從activemq-all中去除JMS 1.1,pom 以下所示

<!--activeMQ-->
        <!--ActiveMQ客戶端完整jar包依賴-->
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-all</artifactId>
            <exclusions>
                <exclusion>
                    <artifactId>spring-context</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
                <exclusion>
                    <groupId>org.apache.geronimo.specs</groupId>
                    <artifactId>geronimo-jms_1.1_spec</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
複製代碼

7.org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'itemCatController': Unsatisfied dependency expressed through field 'managerItemCatService';

這個問題主要是springmvc的問題。 解決:

image.png
更改成
image.png

8.Spring中報"Could not resolve placeholder"的解決方案

場景:當有多份配置文件須要加載properties文件時,若是同時使用<context:property-placeholder location="classpath:cache.properties"/>這樣就會報Could not resolve placeholder 解決:在每份配置文件中添加

image.png

注意:

1.在一個或多個Spring配置文件下直接使用 <context:property-placeholder location="classpath:cache.properties"/>加載多個文件的話確定會報錯。

2.添加ignore-unresolvable="true"要所有添加,一個加一個不加也不行

9.外部沒法鏈接redis

場景:剛安裝了redis數據庫外部沒法鏈接,修改完redis.conf後致使redis-cli沒法關閉 解決:在配置文件中修改

1.bind 127.0.0.1改成 #bind 127.0.0.1

2.protected-mode yes 改成 protected-mode no

使用 ps -ef |grep redis 查看redis進程號 而後使用kill -9 進程號 殺死進程 重啓redis

10.cmd登陸ftp服務器失敗

場景:在windows的cmd窗口中輸入ftp服務器的用戶名和密碼時登陸失敗 vsftpd 530 login incorrect 的N中狀況

解決: 1.密碼錯誤 2.檢查/etc/vsftpd/vsftpd.conf配置

vim /etc/vsftpd/vsftpd.conf
複製代碼

設置爲

local_enable=YES  
pam_service_name=vsftpd     //這裏重要,有人說ubuntu是pam_service_name=ftp,能夠試試
userlist_enable=YES 
複製代碼

3.檢查/etc/pam.d/vsftpd

vim /etc/pam.d/vsftpd
複製代碼

註釋掉

#auth required pam_shells.so
複製代碼

最後不管哪一種狀況 重啓試試

sudo service vsftpd restart
複製代碼
相關文章
相關標籤/搜索