日常采坑篇

2020.10.19

在启动war项目的时候出现:

请求的资源[/$%7BpageContext.request.contextPath%7D/savePerson]不可用

需要检查web.xml文件 头下面的那个版本号

正确的web.xml头是:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1" metadata-complete="true">

  




2020.10.21
在springmvc配置入参类型为Set集合时要注意在pojo文件下的类要加构造器

 


 

 

 

 


 

 

2020-10-26

在写Oracle查询语句时候:

注意不为空(null)

错误写法:

select * from emp where comm not is null ; 

 

正确写法:(两种方式)

select * from emp where comm is not null;
select * from emp where not comm is null;

 

坑:

 

 

 

 

 

 

 

 

2020-11-10:

在数据库中怎么做到大量数据迁移?

在Oracle数据库中,使用同义词

MySQL数据库中需要关闭  唯一约束 和 关闭验证(验证数据是否正确).

 

 

 

2020-11-10:

在邮件中 怎么在百万级邮件中,把黑名单的邮件剔除出去?

使用布隆选择器(布隆算法)3次删选过滤.

 

2020-11-16:

1.设置zookeeper开机自动启动

 

zookeeper 未启动


   检查是否启动   netstat -antp|grep 2181


扩展知识点1:设置zookeeper开机自动启动


     (1)、设置开机自动启动配置文件的可执行权限

            chmod +x /etc/rc.d/rc.local

      (2)、编辑开机自动启动配置文件 

        vi  /etc/rc.d/rc.local

         在最后行增加内容:

             source /etc/profile

             /usr/local/zookeeper/bin/zkServer.sh start


             /usr/local/tomcat/bin/startup.sh

 

 

 

 

2.连接dubbo监控中心失败

 

1、zookeeper所在的linux服务器上tomcat是否启动


    netstat -antp|grep 8080


  2、尝试访问linux服务器8080端口


   http://192.168.188.128:8080

  3、如果访问失败,确认防火墙是否关闭

    systemctl stop firewalld

    systemctl disable firewalld


  4、再次尝试访问  http://192.168.188.128:8080



  5、如果还是不能访问到,tomcat配置出现问题

    重新安装tomcat   rm -rf /usr/local/tomcat

 

 

3.发布dubbo的管理监控中心

1、确认服务器配置好java环境

java -version 

2、上传tomcat的安装包

apache-tomcat-8.5.51.tar.gz

3、解压缩tomcat的安装包

tar xvf apache-tomcat-8.5.51.tar.gz -C /usr/local/

4、进入解压缩目录,修改目录名称

cd /usr/local

mv apache-tomcat-8.5.51/ tomcat

5、测试启动tomcat

cd tomcat/bin

./startup.sh    //启动tomcat

6、查看端口号是否监听

netstat -antp|grep 8080

7、统一关闭防火墙

systemctl stop firewalld   //关闭当前防火墙服务

systemctl disable firewalld  //禁用防火墙服务开机自启

8、测试访问tomcat

http://192.168.188.142:8080/

9、停止tomcat

./shutdown.sh     //停止需要等待30秒

10、上传dubbo监控管理的war包到指定tomcat的目录


/usr/local/tomcat/webapps


dubbo-admin-2.6.1.war

11、删除 tomcat目录下的 ROOT目录

rm -rf ROOT/

12、修改所上传dubbo的war包名称

 mv dubbo-admin-2.6.1.war ROOT.war

13、再次启动tomcat

cd ../bin

./startup.sh 

14、正式访问dubbo的管理控制台

输入账号:root
密码:root

 

4.空指针问题

  1、确认dubbo监控中心已经注册上服务提供者


     如果未注册上服务提供者:

       (1)、解决服务提供者注册问题

             (1.1)确认是否导入了dubbo相关依赖包

             <!-- dubbo相关 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>dubbo</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.curator</groupId>
            <artifactId>curator-recipes</artifactId>
        </dependency>

          (1.2)、确认spring配置文件dubbo的配置文件是否正确

            头文件是否引用错误:xmlns:dubbo="http://code.alibabatech.com/schema/dubbo"

            
               <dubbo:annotation package="com.offcn.sellergoods.service.impl"/>  

                重点检查扫描包是否正确,ctrl+鼠标左键  看是否变成 小手

          (1.3)、检查服务实现类,注解是否加上?

                   是否加错了注解:com.alibaba.dubbo.config.annotation.Service

  

         (1.4)、确认web.xml是否成功加载了spring配置文件,重点看dubbo的配置文件是否加载上


 
    如果服务提供者已经注册到了dubbo监控中心

        2、检查服务消费者

          (2.1)、检查依赖  、检查spring的配置文件、检查 注解@Reference 


        重启消费者

 

5.服务提供者出现异常

HTTP Status 500 - Request processing failed; nested exception is com.alibaba.dubbo.rpc.RpcException: Failed to invoke the method findAll in the service com.offcn.sellergoods.service.BrandService. Tried 3 times of the providers [10.10.115.147:20880] (1/1) from the registry 192.168.188.142:2181 on the consumer 10.10.115.147 using the dubbo version 2.6.4. Last error is: Invoke remote method timeout. method: findAll, provider: dubbo://10.10.115.147:20880/com.offcn.sellergoods.service.BrandService?anyhost=true&application=youlexuan_manager_web&check=false&dubbo=2.0.2&generic=false&interface=com.offcn.sellergoods.service.BrandService&methods=findAll&pid=8672&register.ip=10.10.115.147&remote.timestamp=1592446162160&revision=1.0&side=consumer&timestamp=1592446203793, cause: Waiting server-side response timeout. start time: 2020-06-18 10:10:06.748, end time: 2020-06-18 10:10:07.750, client elapsed: 0 ms, server elapsed: 1001 ms, timeout: 1000 ms, request: Request [id=2, version=2.0.2, twoway=true, event=false, broken=false, data=RpcInvocation [methodName=findAll, parameterTypes=[], arguments=[], attachments={path=com.offcn.sellergoods.service.BrandService, interface=com.offcn.sellergoods.service.BrandService, version=0.0.0}]], channel: /10.10.115.147:51804 -> /10.10.115.147:20880



1、增加服务提供者 的日志配置文件 log4j.properties

   放到resources目录下


  看到更多日志输出

 

6.解决服务提供方 QOS错误

[com.alibaba.dubbo.qos.protocol.QosProtocolWrapper] -  [DUBBO] Fail to start qos server: , dubbo version: 2.6.4, current host: 10.10.115.147
  java.lang.NoClassDefFoundError: io/netty/channel/EventLoopGroup
    at com.alibaba.dubbo.qos.protocol.QosProtocolWrapper.startQosServer(QosProtocolWrapper.java:95)
    at com.alibaba.dubbo.qos.protocol.QosProtocolWrapper.export(QosProtocolWrapper.java:59)
    at com.alibaba.dubbo.rpc.protocol.ProtocolListenerWrapper.export(ProtocolListenerWrapper.java:55)
    at com.alibaba.dubbo.rpc.protocol.ProtocolFilterWrapper.export(ProtocolFilterWrapper.java:98)
    at com.alibaba.dubbo.rpc.Protocol$Adaptive.export(Protocol$Adaptive.java)
    at com.alibaba.dubbo.config.ServiceConfig.doExportUrlsFor1Protocol(ServiceConfig.java:513)
    at com.alibaba.dubbo.config.ServiceConfig.doExportUrls(ServiceConfig.java:358)
    at com.alibaba.dubbo.config.ServiceConfig.doExport(ServiceConfig.java:317)
    at com.alibaba.dubbo.config.ServiceConfig.export(ServiceConfig.java:216)
    at com.alibaba.dubbo.config.spring.S


修改spring配置文件

 <dubbo:application name="youlexuan_sellergoods_service">
        <dubbo:parameter key="qos.enable" value="false"/>
    </dubbo:application>

7.dao包,映射文件目录不对

HTTP Status 500 - Request processing failed; nested exception is java.lang.RuntimeException: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.offcn.mapper.TbBrandMapper.selectByExample


解决方法,重新建多层级映射文件存储目录

 

8.端口被占用

java.net.BindException: Address already in use: JVM_Bind <null>:9101


解决方案:


在windows命令行,输入命令检查被占用端口,所对应进程编号

netstat -a -n -o|findStr 9101


  TCP    0.0.0.0:9101           0.0.0.0:0              LISTENING       1672【进程编号】
  TCP    [::]:9101              [::]:0                 LISTENING       1672


使用任务管理器,来结束进程

直接使用命令杀死进程

tskill 进程编号

2020-11-23:

在写前端对后端controller发请求时,遇到404...看看是不是路径有问题..........

posted @ 2020-10-19 22:16  master_hxh  阅读(180)  评论(0编辑  收藏  举报