问题一:Project build error: Non-resolvable parent POM for cn.hima:e3-common:0.0.1-SNAPS
错误原因:
父工程的此处名称配置错误,导致继承的POM无法得到父工程的POM
应该为:
cn.e3mall
e3-parent
问题二:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project xxx-framework: Compilation failure
解决网址:https://www.cnblogs.com/yql1986/p/9511831.html
问题解决:preferences->java->Installed JREs 里面的jer必须是jdk里面的jre,而不是其他的jre
问题三:Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean (default-clean) on project e3-manager-web: Failed to clean project: Failed to delete D:\workspaces-itcast\template\e3-manager\e3-manager-web\target\tomcat\logs\access_log.2020-01-10 -> [Help 1]
1.删除:access_log.2020-01-10
2.在进程里面结束javax.exe
问题4:
ClassPathXmlApplicationContext:是在src目录下
FileSystemXmlApplicationContext:是在根目录下
第二天:
?:表示没有被svn管理
项目soa架构:表现层和业务层分离出来2个系统
使用dubbo:使用rpc协议进行远程调用,直接使用socket通信。传输效率高,并且可以统计出系统之间的调用关系、调用次数。
单一应用架构:数据访问框架(ORM)
垂直应用架构:Web框架(MVC)
分布式服务架构:分布式服务框架(RPC)
流动计算架构:资源调度和治理中心(SOA)
Dubbo就是资源调度和治理中心的管理工具。
Dubbo的架构:
节点角色说明:
Provider: 暴露服务的服务提供方。
Consumer: 调用远程服务的服务消费方。
Registry: 服务注册与发现的注册中心。(中介)
Monitor: 统计服务的调用次调和调用时间的监控中心。
Container: 服务运行容器。(spring容器)
问题五(卡了5天*****):
添加log4j;查看错误信息
Unknown character set: ‘utf8mb4’:
mysql的驱动版本与MySQL的版本不相符,导致出错。
centOS链接CRT问题
https://blog.youkuaiyun.com/weixin_42146366/article/details/88535010
https://blog.youkuaiyun.com/weixin_42526674/article/details/85009231
关闭防火墙
开启: chkconfig iptables on
关闭: chkconfig iptables off
查看防火墙状态
service iptables status
chkconfig | grep iptables
centOS命令
https://www.cnblogs.com/jiangfeilong/p/9979484.html
mkdir 创建一个文件
mv 可以对目录移动和重命名
cp -r 拷贝文件夹
rm -r 删除文件夹
rm -rf 强制删除文件夹包含子文件夹
vim 编辑 wq保存 q!强制退出
rpm -qa 查看所有安装包
rpm -qa | grep -i java 查看所有与java相关的程序
rmp -e --nodeps 删除安装的程序
rm -f MySQL-5.6.22-1.el6.i686.rpm-bundle.tar 删除压缩包
在虚拟机里面安装程序
1.alt+p 上传文件
2.(tar -zxvf xxxx压缩包 -C 指定路径) 解压
3.rpm -ivh MySQL-client-5.6.22-1.el6.i686.rpm 安装程序(此文件夹包含此程序包才可以安装)
4. mv apache-tomcat-7.0.57/ tomcat 把apache-tomcat-7.0.57修改为tomcat
mkdir -p /usr/local/java jdk安装路径
配置jdk环境变量
1)查看当前Linux系统是否已经安装java
输入 rpm -qa | grep java
2)卸载两个openJDK
输入rpm -e --nodeps 要卸载的软件
3)上传jdk到linux
4)安装jdk运行需要的插件yum install glibc.i686(选做)
5)解压jdk到/usr/local下 tar –xvf jdk-7u71-linux-i586.tar.gz –C /usr/local
6)配置jdk环境变量,打开/etc/profile配置文件,将下面配置拷贝进去
#set java environment
JAVA_HOME=/usr/local/jdk1.7.0_71
CLASSPATH=.:
J
A
V
A
H
O
M
E
/
l
i
b
.
t
o
o
l
s
.
j
a
r
P
A
T
H
=
JAVA_HOME/lib.tools.jar PATH=
JAVAHOME/lib.tools.jarPATH=JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH
7)重新加载/etc/profile配置文件 source /etc/profile
测试:[root@root jdk1.7]# java -version
mysql的安装:
1.启动mysql service mysql start
2.将mysql加到系统里面 chkconfig --add mysql
3.开机自动启动 chkconfig mysql on
4.cd ~
5.cat .mysql_secret 获取密码
6.mysql -u -root -p
7.修改密码 set password = password(‘root’);
8.登录MySQL之后:输入grant all privileges on . to ‘root’ @’%’ identified by ‘root’;(远程控制)
9.开放端口号3306:到根目录输入/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
10./etc/rc.d/init.d/iptables save —将修改永久保存到防火墙中
3.Tomcat安装
步骤:
1)上传Tomcat到linux上
2)解压Tomcat到/usr/local下
3)开放Linux的对外访问的端口8080
/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
/etc/rc.d/init.d/iptables save
4)启动关闭Tomcat
进入tomcat的bin下启动:./startup.sh
进入tomcat的bin下关闭:./shutdown.sh
如果ping不了外网:
检查
1.ipv4地址
2.默认网关
3.子网掩码
Zookeeper是java开发的可以运行在windows、linux环境。需要先安装jdk。
安装步骤:
第一步:安装jdk
第二步:把zookeeper的压缩包上传到linux系统。
第三步:解压缩压缩包
tar -zxvf zookeeper-3.4.6.tar.gz
第四步:进入zookeeper-3.4.6目录,创建data文件夹。
第五步:把zoo_sample.cfg改名为zoo.cfg
[root@localhost conf]# mv zoo_sample.cfg zoo.cfg
第六步:修改data属性:dataDir=/root/zookeeper-3.4.6/data
第七步:启动zookeeper
[root@localhost bin]# ./zkServer.sh start
关闭:[root@localhost bin]# ./zkServer.sh stop
查看状态:[root@localhost bin]# ./zkServer.sh status
注意:需要关闭防火墙。
service iptables stop
永久关闭修改配置开机不启动防火墙:
chkconfig iptables off
如果不能成功启动zookeeper,需要删除data目录下的zookeeper_server.pid文件。
Maven如何让子工程移到父工程目录下
1.在父工程中删除子工程
2.从SVN中导入该工程转为Mavens
2020/1/19
问题一:
The matching wildcard is strict, but no declaration can be found for element ‘dubbo:application’.
这个是因为约束未导入正确导致
参考:
https://blog.youkuaiyun.com/wmx1992/article/details/80746032
问题二:
java.net.ConnectException: Connection refused: no further information
参考此链接:
https://blog.youkuaiyun.com/tlk20071/article/details/52028945
zookeeper连接不上,可能是防火墙对2181端口没有开放 输入/sbin/iptables -I INPUT -p tcp --dport 2181 -j ACCEPT /etc/rc.d/init.d/iptables save
另外可能是端口号被占用
问题三:
[ERROR] /D:/workspaces-itcast/template/e3-manager-web/src/main/java/cn/e3mall/controller/ItemController.java:[20,56] 不兼容的类型
- web的pom.xml里面已经依赖了interface,而interface依赖pojo,所以在web里面已经不用再导入pojo依赖包 并且对pojo以及interface进行maven install
2.删除本地仓库里面的打包好的jar包
问题四:
cause: java.lang.IllegalStateException: Serialized class cn.e3mall.pojo.TbItem must implement java.io.Serializable
TbItem必须实现序列化接口
问题五:
com.alibaba.dubbo.rpc.RpcException: Failed to invoke the method getItemById in the service cn.e3mall.service.ItemService
此问题是因为配置文件里面的数据库连接有错误
cp dubbo-admin-2.5.4.war /usr/local/tomcat/tomcat/webapps/dubbo-admin.war
复制dubbo-admin-2.5.4.war 到/usr/local/tomcat/tomcat/webapps并且改名为dubbo-admin.war
查看端口是否被占用:netstat -an |grep 8080
查看tomcat是否被启动:在tomcat文件下输入:tail -f logs/catalina.out
java.net.BindException: Address already in use: JVM_Bind :8080
表示8080端口号被占用使用:CMD>netstat -ano | findstr 8080
之后再用:CMD>taskkill /F /PID 1234 就OK
监控中心:
1.导入dobbo-admin.war包到tomcat的webapps下
2.开启虚拟机的tomat,同时也要开启本机的tomcat,并且保证端口号一致;
3.登录密码默认是root,用户名是也是root
4.要开起zookeeper
5.关闭防火墙
6.端口号加入防火墙
问题六:
java:[17,50] 找不到符号 [ERROR] 符号: 方法 getItemList(int,int) [ERROR] 位置: 类型为cn.e3mall.service.ItemServic
解决:相关的文件都Maven install一下
安装nginx:
yum install gcc-c++
yum install -y pcre pcre-devel
yum install -y zlib zlib-devel
yum install -y openssl openssl-devel
安装nginx:
第一步:把nginx的源码包上传到linux系统
第二步:解压缩
[root@localhost ~]# tar zxf nginx-1.8.0.tar.gz
第三步:使用configure命令创建一makeFile文件。
./configure
–prefix=/usr/local/nginx
–pid-path=/var/run/nginx/nginx.pid
–lock-path=/var/lock/nginx.lock
–error-log-path=/var/log/nginx/error.log
–http-log-path=/var/log/nginx/access.log
–with-http_gzip_static_module
–http-client-body-temp-path=/var/temp/nginx/client
–http-proxy-temp-path=/var/temp/nginx/proxy
–http-fastcgi-temp-path=/var/temp/nginx/fastcgi
–http-uwsgi-temp-path=/var/temp/nginx/uwsgi
–http-scgi-temp-path=/var/temp/nginx/scgi
注意:启动nginx之前,上边将临时文件目录指定为/var/temp/nginx,需要在/var下创建temp及nginx目录
[root@localhost sbin]# mkdir /var/temp/nginx/client -p
第四步:make
第五步:make install
6.3. 启动nginx
进入sbin目录
[root@localhost sbin]# ./nginx
关闭nginx:
[root@localhost sbin]# ./nginx -s stop
推荐使用:
[root@localhost sbin]# ./nginx -s quit
重启nginx:
1、先关闭后启动。
2、刷新配置文件:
[root@localhost sbin]# ./nginx -s reload
查看是否启动了nginx
ps aux | grep nginx
配置虚拟主机
Nginx的配置文件:
/usr/local/nginx/conf/nginx.conf
配置了多个虚拟主机。
server {
listen 81;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
root html-81;
index index.html index.htm;
}
}
问题:
org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
解决:
@RequestMapping(value="/pic/upload", produces=MediaType.TEXT_PLAIN_VALUE+";charset=utf-8")
Redis的安装
Redis是c语言开发的。
安装redis需要c语言的编译环境。如果没有gcc需要在线安装。yum install gcc-c++
安装步骤:
第一步:redis的源码包上传到linux系统。
第二步:解压缩redis。
第三步:编译。进入redis源码目录。make
第四步:安装。make install PREFIX=/usr/local/redis
PREFIX参数指定redis的安装目录。一般软件安装到/usr目录下
前端启动redis 在bin目录下./redis-server
后端启动redis 把redis.conf复制到bin目录下,修改并且daemonize yes 启动./redis-server redis.conf
查看是否启动
安装redisz集群
安装ruby
yum install ruby
yum install rubygems
安装ruby脚本运行使用的包。
gem install redis-3.0.0.gem
使用命令cp -r bin redis-cluster/redis01 把redis下的bin复制到redis-cluster/redis01此文件下
进入redis.conf修改 cluster-enabled yes
修改端口号为7001
复制6份文件:cp -r redis01/ redis02
cp -r redis01/ redis03
分别修改成6个不同的端口
批量启动服务器
使用命令:
chmod u+x start.sh
在redis下的bin输入[root@root bin]# ./redis-cli -h 192.168.43.11 -p 7001 -c 启动客户端服务器
在redis-cluster文件下输入redis01/redis-cli -p 7001 shutdown
需要6台redis服务器。搭建伪分布式。
需要6个redis实例。
需要运行在不同的端口7001-7006
第一步:创建6个redis实例,每个实例运行在不同的端口。需要修改redis.conf配置文件。配置文件中还需要把cluster-enabled yes前的注释去掉。
第二步:启动每个redis实例。
第三步:使用ruby脚本搭建集群。
yum install rubygems
安装ruby脚本运行使用的包。
gem install redis-3.0.0.gem
./redis-trib.rb create --replicas 1 192.168.25.153:7001 192.168.25.153:7002 192.168.25.153:7003 192.168.25.153:7004 192.168.25.153:7005 192.168.25.153:7006
问题
java.Net.UnknownHostException异常处理方法
https://blog.youkuaiyun.com/qq_19734597/article/details/85272337
在/etc/hosts里加一行 本机IP mName
Solr的环境
Solr是java开发。
需要安装jdk。
安装环境Linux。
需要安装Tomcat。
搭建步骤
第一步:把solr 的压缩包上传到Linux系统
第二步:解压solr。
第三步:安装Tomcat,解压缩即可。
第四步:把solr里面/usr/local/solr-4.10.3/dist/ solr-4.10.3.war下部署到Tomcat下。
第五步:解压缩war包。启动Tomcat解压。
第六步:把solr-4.10.3/example/lib/ext目录下的所有的jar包,添加到solr工程中。
[root@localhost ext]# pwd
/root/solr-4.10.3/example/lib/ext
[ro才对ot@localhost ext]# cp * /usr/local/tomcat/tomcat/webapps/solr/WEB-INF/lib/
第七步:创建一个solrhome。/example/solr目录就是一个solrhome。复制此目录到/usr/local/solr/solrhome
[root@localhost example]# pwd
/root/solr-4.10.3/example
[root@localhost example]# cp -r solr /usr/local/solr/solrhome
[root@localhost example]#
第八步:关联solr及solrhome。需要修改solr工程的web.xml文件。 修改为/usr/local/solr/solrhome/
第九步:启动Tomcat
http://192.168.25.154:8080/solr/
问题:
could not find the document; 2) the document could not be read; 3) the root element of the document is not xsd:schema
参考:
https://blog.youkuaiyun.com/weixin_30355437/article/details/96116413
电脑连接不上手机热点:
输入:netsh int ip reset c:\reaetlog.txt
netsh winsock reset catalog
修改DNS 把手动改为自动:
114.114.114.144
8. 8. 8. 8
Connection timed out
解决:
https://blog.youkuaiyun.com/w15732624773/article/details/79180967
创建对应的业务域。需要制定中文分析器。
创建步骤:
第一步:把中文分析器添加到工程中。
1、把IKAnalyzer2012FF_u1.jar添加到tomcat下的solr工程的lib目录下
2、把扩展词典、配置文件( ext_stopword.dic IKAnalyzer.cfg.xml mydict.dic)放到solr工程的WEB-INF/classes目录下。
第二步:配置一个FieldType,制定使用IKAnalyzer
修改schema.xml文件(在sorl/sorlhome/collection1/conf/schema.xml)
修改Solr的schema.xml文件,添加FieldType:
第三步:配置业务域,type制定使用自定义的FieldType。
设置业务系统Field
Zookeeper集群搭建
第一步:需要安装jdk环境。
第二步:把zookeeper的压缩包上传到服务器。
第三步:解压缩。
第四步:把zookeeper复制三份。
[root@localhost ~]# mkdir /usr/local/solr-cloud
5.2. Solr集群的搭建
第一步:创建四个tomcat实例。每个tomcat运行在不同的端口。8180、8280、8380、8480
第二步:部署solr的war包。把单机版的solr工程复制到集群中的tomcat中。
第三步:为每个solr实例创建一个对应的solrhome。使用单机版的solrhome复制四份。
第四步:需要修改solr的web.xml文件。把solrhome关联起来。
第五步:配置solrCloud相关的配置。每个solrhome下都有一个solr.xml,把其中的ip及端口号配置好。
第六步:让zookeeper统一管理配置文件。需要把solrhome/collection1/conf目录上传到zookeeper。上传任意solrhome中的配置文件即可。
使用工具上传配置文件:/root/solr-4.10.3/example/scripts/cloud-scripts/zkcli.sh
./zkcli.sh -zkhost 192.168.25.154:2181,192.168.25.154:2182,192.168.25.154:2183 -cmd upconfig -confdir /usr/local/solr-cloud/solrhome01/collection1/conf -confname myconf
查看zookeeper上的配置文件:
使用zookeeper目录下的bin/zkCli.sh命令查看zookeeper上的配置文件:
[root@localhost bin]# ./zkCli.sh
[zk: localhost:2181(CONNECTED) 0] ls /
[configs, zookeeper]
[zk: localhost:2181(CONNECTED) 1] ls /configs
[myconf]
[zk: localhost:2181(CONNECTED) 2] ls /configs/myconf
[admin-extra.menu-top.html, currency.xml, protwords.txt, mapping-FoldToASCII.txt, _schema_analysis_synonyms_english.json, _rest_managed.json, solrconfig.xml, _schema_analysis_stopwords_english.json, stopwords.txt, lang, spellings.txt, mapping-ISOLatin1Accent.txt, admin-extra.html, xslt, synonyms.txt, scripts.conf, update-script.js, velocity, elevate.xml, admin-extra.menu-bottom.html, clustering, schema.xml]
[zk: localhost:2181(CONNECTED) 3]
退出:
[zk: localhost:2181(CONNECTED) 3] quit
使用以下命令连接指定的zookeeper服务:
./zkCli.sh -server 192.168.25.154:2183
第七步:修改tomcat/bin目录下的catalina.sh 文件,关联solr和zookeeper。
把此配置添加到配置文件中:
JAVA_OPTS="-DzkHost=192.168.25.154:2181,192.168.25.154:2182,192.168.25.154:2183"
第八步:启动每个tomcat实例。要包装zookeeper集群是启动状态。
第九步:访问集群
第十步:创建新的Collection进行分片处理。
http://192.168.25.154:8180/solr/admin/collections?action=CREATE&name=collection2&numShards=2&replicationFactor=2
第十一步:删除不用的Collection。
http://192.168.25.154:8180/solr/admin/collections?action=DELETE&name=collection1
问题:
java.net.ConnectException: 拒绝连接
在/etc/hosts中添加这一行:
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
消息队列可以持久化
广播队列是瞬时性,但可以持久化
使用activemq主要是在各个业务系统传递消息,避免了各个业务系统的冗余
出现406页面:
1.json包没有添加
2.url后缀有问题
拦截器来处理用户登陆问题