朱杰兵blog

jonhney'blog
posts - 140, comments - 1, trackbacks - 0, articles - 0

导航

<2017年3月>
2627281234
567891011
12131415161718
19202122232425
2627282930311
2345678

常用链接

留言簿

随笔档案

搜索

  •  

最新评论

阅读排行榜

评论排行榜

2017年3月2日

解决办法:
在报错项目的idea路径下(示例路径,根据实际情况查找)D:\idea_workspace\demo\.idea\artifacts,找到错误提示中的模块名,此处示例为“ueditor”,应该会有两个文件(ueditor_war_exploded.xml 和 ueditor_war.xml),删除再重新编译即可。

posted @ 2018-02-24 10:46 朱杰兵 阅读(421) | 评论 (0)编辑 收藏

问题:idea使用过程中 

 报告  plugin error。   Error Loading Project: Cannot load 10 artifacts Details... 并且 tomcat不能配置。

 解决:打开setting>>plugins>>启用 application servers  View. 多次勾选后再取消,重启idea。安装插件

(本人打开plugin界面时,application server 为红色,点击两次enable就可以,当时以为报红是因为缺少插件,废了不少时间)



posted @ 2018-02-24 10:29 朱杰兵 阅读(327) | 评论 (0)编辑 收藏


 

Two modules in a project cannot share the same content root


根本的解决方法: 删除iml文件.

 

其实删了没用的iml重启下idea就可以,


posted @ 2018-02-24 10:27 朱杰兵 阅读(3829) | 评论 (0)编辑 收藏

posted @ 2018-02-24 10:25 朱杰兵 阅读(309) | 评论 (0)编辑 收藏

在使用idea开发的过程中,提交时遇到两个问题,一个是每次提交都需要输入用户名和密码,选择记住密码,依然提示;第二个是提交后,git账户名显示是Administrator,跟自己注册git时账号不一致,今天花了点时间,从网上找了下解决方案,记录一下。

    1.处理不用反复输入密码问题:

    打开git终端,或者idea中的插件终端,输入命令:

    git config--global credential.helper store

   

   

    执行上述命令后,在idea中第一次pull或push需要输入用户名和密码,之后就不用再输入了。

 

    2.git提交代码时,用户名显示为Administrator问题。自己注册完git后,设置的是自己的名称,但不知为什么,在idea上提交代码时,用户名显示的是Administrator,但是git网站上的日志记录却是正常的。

 

 

    自己怀疑idea里的git提交时,取的是本机名,因为自己的电脑机器名就是Administrator,就把电脑名改了,然后试了下,提交日志上还是显示Administrator,关掉idea重启,依然是,关机重启,还没改过来。上网找了下方案,说需要设置下git的全局用户名,打开git终端,修改了下用户名,然后idea中提交日志就显示正常了。

        

    解决方法:执行命令$ git config --global user.name "username"即可。

 

    Git的用户名和邮箱地址作用:用户名和邮箱地址是本地Git客户端的一个变量,不随git库而改变。每次commit都会用用户名和邮箱纪录。github的contributions统计就是按邮箱来统计的。


查看git用户名和邮箱地址命令:

$ git configuser.name

$ git configuser.email

修改用户名和邮箱地址:

$ git config--global user.name "username"

$ git config--global user.email "email"

当git注册时的邮箱发生变化后,可以通过config命令进行修改。

posted @ 2018-01-03 18:53 朱杰兵 阅读(3653) | 评论 (0)编辑 收藏

3######一、安装环境######
1、本机系统:Windows 10 Pro(64位)
2、Node.js:v6.9.2LTS(64位)

二、安装Node.js步骤######

1、下载对应你系统的Node.js版本:https://nodejs.org/en/download/
2、选安装目录进行安装
3、环境配置
4、测试

三、前期准备######

1、Node.js简介
简单的说 Node.js 就是运行在服务端的 JavaScript。Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境。Node.js 使用了一个事件驱动、非阻塞式 I/O 的模型,使其轻量又高效。Node.js 的包管理器 npm,是全球最大的开源库生态系统。
2、下载Node.js
打开官网下载链接:https://nodejs.org/en/download/ 我这里下载的是node-v6.9.2-x64.msi,如下图:

四、开始安装######

1、下载完成后,双击“node-v6.9.2-x64.msi”,开始安装Node.js


点击【Next】按钮


勾选复选框,点击【Next】按钮


修改好目录后,点击【Next】按钮


安装完后点击【Finish】按钮完成安装


至此Node.js已经安装完成,可以先进行下简单的测试安装是否成功了,后面还要进行环境配置
在键盘按下【win+R】键,输入cmd,然后回车,打开cmd窗口

安装完后的目录如下图所示:


此处说明下:新版的Node.js已自带npm,安装Node.js时会一起安装,npm的作用就是对Node.js依赖的包进行管理,也可以理解为用来安装/卸载Node.js需要装的东西

五、环境配置######

说明:这里的环境配置主要配置的是npm安装的全局模块所在的路径,以及缓存cache的路径,之所以要配置,是因为以后在执行类似:npm install express [-g] (后面的可选参数-g,g代表global全局安装的意思)的安装语句时,会将安装的模块安装到【C:\Users\用户名\AppData\Roaming\npm】路径中,占C盘空间。
例如:我希望将全模块所在路径和缓存路径放在我node.js安装的文件夹中,则在我安装的文件夹【D:\Develop\nodejs】下创建两个文件夹【node_global】及【node_cache】如下图:

创建完两个空文件夹之后,打开cmd命令窗口,输入

npm config set prefix "D:\Develop\nodejs\node_global" npm config set cache "D:\Develop\nodejs\node_cache" 

接下来设置环境变量,关闭cmd窗口,“我的电脑”-右键-“属性”-“高级系统设置”-“高级”-“环境变量”

进入环境变量对话框,在【系统变量】下新建【NODE_PATH】,输入【D:\Develop\nodejs\node_global\node_modules】,将【用户变量】下的【Path】修改为【D:\Develop\nodejs\node_global】

六、测试######

配置完后,安装个module测试下,我们就安装最常用的express模块,打开cmd窗口,
输入如下命令进行模块的全局安装:

npm install express -g     # -g是全局安装的意思 
补充#####

通过npm安装模块时都是去国外的镜像下载的,有的时候由于网络原因会导致安装模块失败,好在阿里有团队维护国内镜像:http://npm.taobao.org/ 上面有使用说明



作者:指間的Coding
链接:https://www.jianshu.com/p/03a76b2e7e00
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

posted @ 2018-01-03 18:51 朱杰兵 阅读(136) | 评论 (0)编辑 收藏

在使用 Intellij IDEA时,常常需要打开两个或更多的窗口,而之前的版本如下设置


新版本如下设置

posted @ 2018-01-03 18:49 朱杰兵 阅读(1162) | 评论 (0)编辑 收藏

启动 Java Web 项目

1)打开“Project Structure”


2)配置“Facets”


3)配置“Artifacts”


4) 启动“Edit Configurations”


5) Add New 'Tomcat Server' 配置


6) 配置Deplyment


7) 配置Server


   其结果如下:


8) 启动Web Server


现在可以通过Browser访问WebServer的页面了。


posted @ 2017-12-12 13:58 朱杰兵 阅读(168) | 评论 (0)编辑 收藏

posted @ 2017-12-10 18:21 朱杰兵 阅读(169) | 评论 (0)编辑 收藏

最近没啥事开始正式用Eclipse 转入 idea工具阵营,毕竟有70%的开发者在使用idea开发,所以它的魅力可想而知。刚上手大概有一天,就知道它为啥取名为 intelli(智能化)了,确实很智能,这还是一些小小的细节,当然idea也有它不足之处,就是我们今天要讲的“自定义方法注解模板”,类注解模板可以很简单的设置,这里我就不重复,而网上很多关于自定义方法注解模板的文章大多是抄袭获取转发根本自己就没有验证,本文经过自己亲自验证有效。


  1. File->settings->Editor->Live Templates



  2. 点击右上角的绿色+号,然后选择template group ,然后输入group的name,随便输入就好了:myGroup。然后点ok



  3. 选中刚才创建的myGroup,然后再次点击右侧的绿色+,这次选择的是第一个1. Live Template。取名为*,取名可以随便,只是个人觉得方便,你可以取别的。
     
    然后点击这里写图片描述
    然后选择Everywhere
    这里写图片描述 最后点击右下角的Edit variables 按钮,然后弹出一个窗口,如下:


  4. 配置模板,下面是我的模板,大家仔细看我的模板开头是*而不是/*,这就是关键所在。
    1. *  
    2.  *    
    3.  *   
    4.  * @author chenmc  
    5.  * @date $date$ $time$  
    6.  * @param $params$  
    7.  * @return $returns$  
    8.  */  
    注意只有当变量被$$包围是 右侧的Edit variables才可以点击哦。


  5. 再编辑好模板之后就只为参数添加$$添加变量,点击右侧的 Editor variables,



  6. 完成之后点击Apply然后点击OK,注意了,重点的地方,在你的方法上输入 /*然后加上模板的名称*,这就是我为什么不取字母而取名为*,因为这样很快速,再按Tab键(注意啊不是按Enter键,而是按Tab键)就会出现你想要的注释了,很多教程是直接输入模板名称按tab键,但是这种方法的@param和@return是获取不到的,再重复一遍正确的方式/** 然后按Tab键;如果你取名为abc那就是  /*abc 然后按Tab。效果如下:



  7. 但是还有一个问题,细心的读者会发现在@param这个参数上报错了,这是因为idea强大的检查功能,有两种解决办法:
    1. File->settings->Editor->Inspections->javadoc issues下面第四项将红色 Error改为黄色Warning即可  

    1. 第二种是点击idea的右下角的人头图像,然后选择高亮级别,调为Syntax模式即可  



    至此已大功告成了,希望能帮到大家!

posted @ 2017-12-07 21:27 朱杰兵 阅读(188) | 评论 (0)编辑 收藏

http://blog.csdn.net/duanlb_001/article/details/77651683
在线安装:在INSTALL NEW SOFTWAR中输入地址:http://download.eclipse.org/releases/juno,在加载出来的插件列表中,输入SUB来过滤出SVN插件。
eclipse-help-install new software-work with:  http://community.polarion.com/projects/subversive/download/eclipse/3.0/kepler-site/

posted @ 2017-11-30 14:16 朱杰兵 阅读(400) | 评论 (0)编辑 收藏

1)打开“Project Structure”


2)配置“Facets”


3)配置“Artifacts”


4) 启动“Edit Configurations”


5) Add New 'Tomcat Server' 配置


6) 配置Deplyment


7) 配置Server


   其结果如下:


8) 启动Web Server


现在可以通过Browser访问WebServer的页面了。

posted @ 2017-11-23 13:49 朱杰兵 阅读(95) | 评论 (0)编辑 收藏

一,JRebel 插件 获取与安装

直接在 IDEA 中操作获取 JRebel 插件


Paste_Image.png

Paste_Image.png


安装完成,记得重启 IDEA 使刚才安装的插件生效。

二,激活


Paste_Image.png

Paste_Image.png


http://idea.lanyus.com/ilanyu
lanyu19950316@gmail.com
在此感谢 IDEA开源社区 http://www.ideajava.org/


Paste_Image.png

Paste_Image.png

三:使用


Paste_Image.png

Paste_Image.png

Paste_Image.png

Paste_Image.png

配置完毕!


Paste_Image.png

启动项目之后
任意修改 java 代码,并 ctrl + s 保存 ,update classes and resources 一下。





当一个项目使用maven多模块开发时通过上面的配置, 只能自动加载webapp所在的模块, 若想改动其他模块的代码也要自动加载, 需在项目的根(父)pom.xml中加入下面的配置: 
这里写图片描述

 <plugin>     <groupId>org.zeroturnaround</groupId>     <artifactId>jrebel-maven-plugin</artifactId>     <version>1.1.5</version>     <configuration>         <addResourcesDirToRebelXml>true</addResourcesDirToRebelXml>         <alwaysGenerate>true</alwaysGenerate>         <showGenerated>true</showGenerated>     </configuration>     <executions>         <execution>             <id>generate-rebel-xml</id>             <phase>process-resources</phase>             <goals>                 <goal>generate</goal>             </goals>         </execution>     </executions> </plugin>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20

运行mvn jrebel:generate, 生成rebel.xml文件.

这里写图片描述


posted @ 2017-11-23 13:45 朱杰兵 阅读(260) | 评论 (0)编辑 收藏

一:文件级别的注释
        文件级别的注释通过File--》Setting--》File and Code Template中来设置
二:方法级别的注释
1、点击File--》Setting--》Live Template,点击右侧的+号,选择Template Group
        2、输入MyGroup(你也可以输入其他自定义的名称),然后点击OK。
        3、选中MyGroup之后,再次点击右侧的+号,选择Live Template
 
        4、点击第四步的Define,选择EveryWhere
        5、点击右边的Edit variables
       6、点击OK,Apply,退出,大功告成。页面任意地方输入cmt,然后点击回车,进行体验吧

posted @ 2017-11-23 13:42 朱杰兵 阅读(1347) | 评论 (0)编辑 收藏

     摘要: 不严谨的写法,可能会报错:in (),这种情况不符合SQL的语法,导致程序报错。如果简单只做非空判断,这样也有可能会有问题:本来in一个空列表,应该是没有数据才对,却变成了获取全部数据!所以一个比较周全的方法是:12345678910111213<select id="findLastPoolTaskIdsForMo" resultMap="poolTaskResult"...  阅读全文

posted @ 2017-11-23 13:40 朱杰兵 阅读(492) | 评论 (0)编辑 收藏

My problem fixed after I added below dependency to my pom.xml and downgrade the spring-boot-starter-parent to version 1.5.2.RELEASE.

		<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-netflix-eureka-server</artifactId><version>1.1.6.RELEASE</version></dependency>

posted @ 2017-11-15 01:25 朱杰兵 阅读(2211) | 评论 (0)编辑 收藏

解决办法:找到tomcat目录的conf下的server.xml
<Context docBase="fms3" path="/fms3" reloadable="true" source="org.eclipse.jst.jee.server:fms3"/></Host>
工程右键properties下的web project setting的context root和上面的path,docbase保持一致

posted @ 2017-09-27 14:50 朱杰兵 阅读(369) | 评论 (0)编辑 收藏

第一步:下载jrebel

tomcat和eclipse的安装就不说了,打开eclipse,打开help-》Eclipse Marketplace,搜索jrebel,点击Installed安装。
安装jrebel插件

第二步:激活

打开help-》Jrebel Configuration-》Overview,点击Activate/Update License,

Open Help > JRebel Activation in your IDE 选中connect to license server 输入http://jrebel.scuxl.cn/xxx,随便输入一个邮箱


输入这个,马赛克部分随便填个邮箱

第三步:配置tomcat服务器

还是刚才的Jrebel Configuration配置页面,打开Startup栏,选择Run via IDE,选择servers:
选择tomcat

这里特别强调了Project-》Build Automatically要勾选上。

第四步:配置需要热部署的项目

还是刚才的Jrebel Configuration配置页面,打开Projects栏,勾选JR图标下的项目,这里会在项目里生成一个rebel.xml文件。
项目配置

第五步:编译项目,启动servers

在Servers拦下右击tomcat server选择start启动,更改代码测试一下你的热部署是不是即时的吧


------------------------------------------------------------------

另一种激活方式

 

方法2:

MyJrebel

登录这个网站,使用脸书或者推特登录(需要越墙),然后输入邮箱,会要求验证(登录邮箱验证,点击验证链接),在输入手机号,不需要验证手机号。之后会进入


把这个粘到开发工具里面也可以无限制使用。





 

posted @ 2017-08-18 00:49 朱杰兵 阅读(147) | 评论 (0)编辑 收藏

systemctl stop firewalld.service #停止firewall

posted @ 2017-06-16 17:17 朱杰兵 阅读(128) | 评论 (0)编辑 收藏

这要说到==和 equals 的区别了。

1. ==比较的是两个对象在内存中的地址值(栈中的内容)。

2.equals 是 Java.lang.Object 类的一个方法。equals 比较的是两个对象的内容(堆中的内容)。java 中所有的类都默认继承于 Object,所以所有的类都有这个方法。

但是 Long 是一个对象,是对 long 的封装。我们看一下 Long 对象的源码,里面的 equals 方法是这么写的:

1     public boolean equals(Object obj) { 2         if (obj instanceof Long) { 3             return value == ((Long)obj).longValue(); 4         } 5         return false; 6     }

所以两个 Long 类型的变量进行比较的话,要么用 equals,要么先调用longValue 方法,拿到里面的 long 值之后再进行==比较。

posted @ 2017-05-26 10:39 朱杰兵 阅读(166) | 评论 (0)编辑 收藏

通过HttpClient请求webService 

由于服务端是用webService开发的,android要调用webService服务获取数据,这里采用的是通过HttpClient发送post请求,获取webService数据。
 
服务端使用的webService框架是axis2,请求数据之前,要封装一个xml格式,再通过post请求,获取服务端数据。
请求的xml格式如下所示: 
1 <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"xmlns:sam="http://user.service.xxx.com">
2    <soap:Header/>
3    <soap:Body>
4       <sam:getUserInfo>
5      <sam:userName>sunlightcs</sam:userName>
6       </sam:getUserInfo>
7    </soap:Body>
8 </soap:Envelope>
其中:getUserInfo是方法名,userName是参数名,当然,还可以加多个参数。
 
 
下面的代码是向webService发送请求,获取数据,返回的数据是xml形式的,android只要解析xml数据,就可以获得想要的数据了。 

01 import java.io.IOException;
02 import java.io.OutputStream;
03 import java.io.OutputStreamWriter;
04 import java.io.Writer;
05  
06 import org.apache.http.HttpResponse;
07 import org.apache.http.client.HttpClient;
08 import org.apache.http.client.methods.HttpPost;
09 import org.apache.http.entity.ContentProducer;
10 import org.apache.http.entity.EntityTemplate;
11 import org.apache.http.impl.client.DefaultHttpClient;
12 import org.apache.http.util.EntityUtils;
13  
14  
15 public class ClientTest {
16  
17     public static void main(String[] args) {
18         ClientTest.httpClientPost();
19     }
20      
21     private static void httpClientPost() {
22         HttpClient client = new DefaultHttpClient();
23         HttpPost post = newHttpPost("http://localhost:8080/xxx/services/userService");
24          
25         try {
26             ContentProducer cp = new ContentProducer() {
27                 public void writeTo(OutputStream outstream) throwsIOException {
28                     Writer writer = new OutputStreamWriter(outstream,"UTF-8");
29                      
30                     /**
31                      * 获取请求的xml格式数据
32                      */
33                     String requestXml = getRequestXml();
34                     writer.write(requestXml);
35                     writer.flush();
36                 }
37             };
38  
39             post.setEntity(new EntityTemplate(cp));
40             HttpResponse response = client.execute(post);
41              
42         //打印返回的xml数据
43             System.out.println(EntityUtils.toString(response.getEntity()));
44         catch (IOException e) {
45             e.printStackTrace();
46         }
47     }
48      
49      
50     private static String getRequestXml(){
51         StringBuilder sb = new StringBuilder("<soap:Envelope xmlns:soap=\"http://www.w3.org/2003/05/soap-envelope\" xmlns:sam=\"http://user.service.xxx.com\">");
52         sb.append("<soap:Header/>");
53         sb.append("<soap:Body>");
54         sb.append("<sam:getUserInfo>");
55         sb.append("<sam:userName>sunlightcs</sam:userName>");
56         sb.append("</sam:getUserInfo>");
57         sb.append("</soap:Body>");
58         sb.append("</soap:Envelope>");
59          
60         return sb.toString();
61     }
62  
63 }

返回的数据格式如下: 
1 <?xml version='1.0' encoding='UTF-8'?>
2 <soapenv:Envelope xmlns:soapenv="http://www.w3.org/2003/05/soap-envelope">
3     <soapenv:Body>
4         <ns:getUserInfoResponse xmlns:ns="http://user.service.xxx.com">
5             <ns:return>xxx</ns:return>
6         </ns:getUserInfoResponse>
7     </soapenv:Body>
8 </soapenv:Envelope>
其中,<ns:return>内的"xxx"可以是json数据,android只需解析标签<ns:return>里的json数据即可。 
转载 http://www.juziku.com/wiki/3919.htm

posted @ 2017-05-24 16:10 朱杰兵 阅读(1211) | 评论 (0)编辑 收藏

netstat -pan|grep 7001
找到进程号,kill -9杀死
打开启动路径
nohup ./startWeblogic.sh &
tail -f nohup.out看启动日志
---------------------------
csh   服务端运行
ps -ef | grep weblogic
kiss -9 sid(左边id)
(
查看后台web进程 
#ps -ef|grep java 如: 
     root 123456 2346546 
    root 1346464    64646464 
杀后台进程 :#kill -9 1346464 
)
cd 到。。。bin/startWebLogic.sh &    注意大小写

posted @ 2017-04-26 19:53 朱杰兵 阅读(92) | 评论 (0)编辑 收藏

java.lang.ClassCastException: weblogic.xml.jaxp.RegistryDocumentBuilderFactory

解决办法

删掉war包中的xml-apis.jar就可以了

posted @ 2017-04-14 16:06 朱杰兵 阅读(102) | 评论 (0)编辑 收藏

右键pom文件 run as --> maven build,  goals填入相应命令,点run

打包
goals 输入 clean package

安装jar到仓库
goals 输入 clean install

测试
goals 输入 clean test

编译
goals 输入 compile

清除
goals输入 clean

 clean  清除编译,compile  编译,test  编译并测试,install 打包并发送到本地仓库,package 只是打成jar包,并不会发送到本地仓库

posted @ 2017-04-13 14:16 朱杰兵 阅读(177) | 评论 (0)编辑 收藏

posted @ 2017-04-12 17:50 朱杰兵 阅读(2472) | 评论 (0)编辑 收藏

public enum MessageLevel {
    LOW {
        @Override
        public String getDesc() {
            return "低";
                    
        }

        @Override
        public String getCode() {
            return "L";
        }

        @Override
        public String getIcon() {
            return "medal_bronze_1.png";
        }

    },
    HEIGH {

        @Override
        public String getDesc() {
            return "高";
        }

        @Override
        public String getCode() {
            return "H";
        }

        @Override
        public String getIcon() {
            return "medal_gold_1.png";
        }

    },
    NORMAL {

        @Override
        public String getDesc() {
            return "中";
        }

        @Override
        public String getCode() {
            return "N";
        }

        @Override
        public String getIcon() {
            return "medal_silver_1.png";
        }

    };
    
    public abstract String getDesc();

    public abstract String getCode();

    public abstract String getIcon();
}

  1. public static void main(String[] args)  
  2.     {  
  3.         System.out.println(MessageLevel.LOW.getDesc());  
  4.         System.out.println(MessageLevel.LOW.getCode());
  5.         System.out.println(MessageLevel.LOW.getIcon());
  6.     } 
-----------------------------------------------------------------------------------------------
  1. public enum Operation   
  2. {  
  3.     PLUS  
  4.     {  
  5.         public double eval(double x,double y)  
  6.         {  
  7.             return x+y;  
  8.         }  
  9.     },  
  10.     MINUS  
  11.     {  
  12.         public double eval(double x,double y)  
  13.         {  
  14.             return x-y;  
  15.         }  
  16.     },  
  17.     TIMES  
  18.     {  
  19.         public double eval(double x,double y)  
  20.         {  
  21.             return x*y;  
  22.         }  
  23.     },  
  24.     DIVIDE  
  25.     {  
  26.         public double eval(double x,double y)  
  27.         {  
  28.             return x/y;  
  29.         }  
  30.     };  
  31.     //为枚举类定义一个抽象方法,这个抽象方法由不同的枚举值提供不同的实现。  
  32.     public abstract double eval(double x,double y);  
  33.     public static void main(String[] args)  
  34.     {  
  35.         System.out.println(Operation.PLUS.eval(3,4));  
  36.         System.out.println(Operation.MINUS.eval(5,4));  
  37.         System.out.println(Operation.TIMES.eval(5,4));  
  38.         System.out.println(Operation.DIVIDE.eval(5,4));  
  39.     }  

posted @ 2017-04-07 11:19 朱杰兵 阅读(89) | 评论 (0)编辑 收藏

classpath

首先 classpath是指编译过后的WEB-INF文件夹下的的classes目录

  • 对于maven的所有项目, 配置文件一般放在resources目录下, 当编译之后会自动复制到classes目录下
  • 非maven的所有项目, 一般放在src目录下, 编译之后也会自动复制到classes目录下面.
  • 所有的web-app项目, 例如web.xml, spring的配置文件等等,是放在webapp/WEB-INF下面的,
    如果想要引用resources或者src目录下的配置文件, 就在在配置文件的路径前加上classpath:, 例如MyBatis配置文件的引用.
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  <property name="dataSource" ref="dataSource"/>  <property name="configLocation" value="classpath:MybatisConfiguration.xml"/>  <property name="mapperLocations" value="classpath*:com/tenlee/mapper/UserMapper.xml"/> </bean>
  • 如果不加的的话,那么都要把配置文件放在WEB-INF/目录下面, 但这样不能单独运行java类进行调试了,必须要启动整个webapp, 比如这样
    <init-param> <param-name>contextConfigLocation</param-name> <param-value>/WEB-INF/configs/mvc-dispatcher.xml</param-value> </init-param>

classpath classpath* 区别:

  • classpath:只会到你的classes路径中查找找文件
  • classpath* :不仅包含classes路径,还包括jar文件classes路径进行查找
  • classpath:classpath*:的区别在于,前者只会从第一个classpath中加载,而后者会从所有的classpath中加载 如果要加载的资源,不在当前ClassLoader的路径里,那么用classpath:前缀是找不到的,这种情况下就需要使用classpath*:前缀.
  • 另一种情况下,在多个classpath中存在同名资源,都需要加载,那么用classpath:只会加载第一个,这种情况下也需要用classpath*:前缀.
  • 可想而知,用classpath*:需要遍历所有的classpath,所以加载速度是很慢的,因此,在规划的时候,应该尽可能规划好资源文件所在的路径,尽量避免使用classpath*

posted @ 2017-04-06 14:32 朱杰兵 阅读(179) | 评论 (0)编辑 收藏

     摘要: 如果你经常需要在Eclipse里打开相关资源文件所在的文件夹,比较麻烦,要右键,属性,在Location一栏中把所在的文件夹拷贝一下,然后再去资源管理器里输入这个路径,回车,然后打开它,比较麻烦。下载地址:http://download.csdn.net/download/lang791534167/8585091eclipse3.6以下的版本将下载的jar包复制到plugins目录下3.6以上包...  阅读全文

posted @ 2017-04-05 09:32 朱杰兵 阅读(111) | 评论 (0)编辑 收藏

     摘要: 解决方法: 步骤一: 从http://maven.oschina.net/content/groups/public/org/apache/maven/archetypes/maven-archetype-quickstart/ 下载最新版maven-archetype-quickstart-1.1.jar 步骤二: 命令行到下载目录下执行 mvn install...  阅读全文

posted @ 2017-03-31 11:13 朱杰兵 阅读(2215) | 评论 (0)编辑 收藏

properties文件默认应该显示为unicode编码,如果安装propertiesEditor插件后可显示为中文

如果没有安装插件,但显示中文,则程序调用属性文件会出现乱码问题,这样就需要手动来将中文转为unicode

直接使用JDK自带的工具:native2ascii.exe

运行cmd,直接用命令的形式,找到文件对应的目录,输入以下命令,

命令格式:native2ascii -encoding UTF-8 源文件名.properties 目标文件名.properties

就可以将含有中文的源文件转为unicode编码的目标文件

posted @ 2017-03-29 14:11 朱杰兵 阅读(123) | 评论 (0)编辑 收藏

最近在研究dubbo,避免不了从最简单的开始。按照网上教程启动zookeeper,启动tomcat时总是报错,

ERROR context.ContextLoader - Context initialization failed org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'uriBrokerService': Cannot create inner bean '(inner bean)' of type [com.alibaba.citrus.service.uribroker.impl.URIBrokerServiceImpl$URIBrokerInfo] while setting bean property 'brokers' with key [0]; nested excepti on is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#25': Cannot create inner bean 'server' of type [com.alibaba.citrus.service.uribroker.uri.GenericURIBroker] while setting constructor argument; nested exception is org.springframework.beans.fact ory.BeanCreationException: Error creating bean with name 'server': Error setting property values; nested exception is org.springframework.beans.NotWritablePropertyException: Invalid property 'URIType' of bean class [com.alibaba.citrus.service.uribroker.uri.GenericURIBroker]: Bean property 'URIType' is not writable or has an invalid setter method. Does the parameter type of the setter match the return type of the getter?         at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:230)         at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:122)         at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveManagedList(BeanDefinitionValueResolver.java:287)

查了很久,终于发现问题所在,现在记录下


原来是我用的jdk版本太高,jdk8, dubbo默认用的spring版本比较旧,冲突导致,降低jdk版本为1.7即可

posted @ 2017-03-27 00:44 朱杰兵 阅读(1065) | 评论 (0)编辑 收藏

Linux下在防火墙中开启80端口、3306端口的方法
vi /etc/sysconfig/iptables

-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT(允许80端口通过防火墙)
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT(允许3306端口通过防火墙)
特别提示:很多网友把这两条规则添加到防火墙配置的最后一行,导致防火墙启动失败,正确的应该是添加到默认的22端口这条规则的下面

添加好之后防火墙规则如下所示:
代码如下:
# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state –state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 22 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 80 -j ACCEPT
-A INPUT -m state –state NEW -m tcp -p tcp –dport 3306 -j ACCEPT
-A INPUT -j REJECT –reject-with icmp-host-prohibited
-A FORWARD -j REJECT –reject-with icmp-host-prohibited
COMMIT


然后重启一下防火墙

service iptables restart

搞定!



centos7不太一样


 

那怎么开启一个端口呢
添加
firewall-cmd --zone=public --add-port=8080/tcp --permanent    (--permanent永久生效,没有此参数重启后失效)
重新载入
firewall-cmd --reload
查看
firewall-cmd --query-port=8080/tcp
删除
firewall-cmd --zone= public --remove-port=80/tcp --permanent

 

posted @ 2017-03-20 15:54 朱杰兵 阅读(845) | 评论 (0)编辑 收藏

此时我们就可以通过 mysql -u root -p 命令来登录我们的mysql数据库了
授权法。

例如,你想用户root使用密码root从任何主机连接到mysql服务器的话。

先执行

mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;

再执行

mysql>FLUSH   PRIVILEGES;         
使修改生效

posted @ 2017-03-20 15:26 朱杰兵 阅读(250) | 评论 (0)编辑 收藏

Linux下mysql安装完后是默认:区分表名的大小写,不区分列名的大小写;
用root帐号登录后,在/etc/my.cnf中的[mysqld]后添加添加lower_case_table_names=1,重启MYSQL服务,这时已设置成功:不区分表名的大小写;
lower_case_table_names参数详解:
lower_case_table_names=0
其中0:区分大小写,1:不区分大小写

posted @ 2017-03-20 15:23 朱杰兵 阅读(103) | 评论 (0)编辑 收藏

转载自

http://www.centoscn.com/mysql/2014/1211/4290.html

一、mysql简介

说到数据库,我们大多想到的是关系型数据库,比如mysql、oracle、sqlserver等等,这些数据库软件在windows上安装都非常的方便,在Linux上如果要安装数据库,咱不得不首先推荐的是mysql数据库了,而且Mysql数据库的第一个版本就是发行在Linux系统上的。

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件采用了双授权政策(本词条“授权政策”),它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。由于其社区版的性能卓越,搭配PHP和Apache可组成良好的开发环境。

在Linux上安装mysql数据库,我们可以去其官网上下载mysql数据库的rpm包,http://dev.mysql.com/downloads/mysql/5.6.html#downloads,大家可以根据自己的操作系统去下载对应的数据库文件,目前最新的版本是5.6.10了。

在这里我是通过yum来进行mysql数据库的安装的,通过这种方式进行安装,可以将跟mysql相关的一些服务、jar包都给我们安装好,所以省去了很多不必要的麻烦!!!

二、卸载掉原有mysql

因为mysql数据库在Linux上实在是太流行了,所以目前下载的主流Linux系统版本基本上都集成了mysql数据库在里面,我们可以通过如下命令来查看我们的操作系统上是否已经安装了mysql数据库

[root@xiaoluo ~]# rpm -qa | grep mysql  // 这个命令就会查看该操作系统上是否已经安装了mysql数据库

有的话,我们就通过 rpm -e 命令 或者 rpm -e --nodeps 命令来卸载掉

[root@xiaoluo ~]# rpm -e mysql  // 普通删除模式 [root@xiaoluo ~]# rpm -e --nodeps mysql  // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除

在删除完以后我们可以通过 rpm -qa | grep mysql 命令来查看mysql是否已经卸载成功!!

三、通过yum来进行mysql的安装

我是通过yum的方式来进行mysql的数据库安装,首先我们可以输入 yum list | grep mysql 命令来查看yum上提供的mysql数据库可下载的版本:

[root@xiaoluo ~]# yum list | grep mysql

就可以得到yum服务器上mysql数据库的可下载版本信息:

 

 

然后我们可以通过输入 yum install -y mysql-server mysql mysql-devel 命令将mysql mysql-server mysql-devel都安装好(注意:安装mysql时我们并不是安装了mysql客户端就相当于安装好了mysql数据库了,我们还需要安装mysql-server服务端才行)

 

[root@xiaoluo ~]# yum install -y mysql-server mysql mysql-devel

 

在等待了一番时间后,yum会帮我们选择好安装mysql数据库所需要的软件以及其它附属的一些软件

 

 

我们发现,通过yum方式安装mysql数据库省去了很多没必要的麻烦,当出现下面的结果时,就代表mysql数据库安装成功了

 

 

此时我们可以通过如下命令,查看刚安装好的mysql-server的版本

 

[root@xiaoluo ~]# rpm -qi mysql-server

 

我们安装的mysql-server并不是最新版本,如果你想尝试最新版本,那就去mysql官网下载rpm包安装就行了,至此我们的mysql数据库已经安装完成了。

四、mysql数据库的初始化及相关配置

我们在安装完mysql数据库以后,会发现会多出一个mysqld的服务,这个就是咱们的数据库服务,我们通过输入 service mysqld start 命令就可以启动我们的mysql服务。

注意:如果我们是第一次启动mysql服务,mysql服务器首先会进行初始化的配置,如:

复制代码
[root@xiaoluo ~]# service mysqld start  初始化 MySQL 数据库: WARNING: The host 'xiaoluo' could not be looked up with resolveip. This probably means that your libc libraries are not 100 % compatible with this binary MySQL version. The MySQL daemon, mysqld, should work normally with the exception that host name resolving will not work. This means that you should use IP addresses instead of hostnames when specifying MySQL privileges ! Installing MySQL system tables... OK Filling help tables... OK  To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system  PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! To do so, start the server, then issue the following commands:  /usr/bin/mysqladmin -u root password 'new-password' /usr/bin/mysqladmin -u root -h xiaoluo password 'new-password'  Alternatively you can run: /usr/bin/mysql_secure_installation  which will also give you the option of removing the test databases and anonymous user created by default.  This is strongly recommended for production servers.  See the manual for more instructions.  You can start the MySQL daemon with: cd /usr ; /usr/bin/mysqld_safe &  You can test the MySQL daemon with mysql-test-run.pl cd /usr/mysql-test ; perl mysql-test-run.pl  Please report any problems with the /usr/bin/mysqlbug script!                                                             [确定] 正在启动 mysqld:                                            [确定]
复制代码

 

这时我们会看到第一次启动mysql服务器以后会提示非常多的信息,目的就是对mysql数据库进行初始化操作,当我们再次重新启动mysql服务时,就不会提示这么多信息了,如:

 

[root@xiaoluo ~]# service mysqld restart 停止 mysqld:                                             [确定] 正在启动 mysqld:                                          [确定]

 

我们在使用mysql数据库时,都得首先启动mysqld服务,我们可以 通过  chkconfig --list | grep mysqld 命令来查看mysql服务是不是开机自动启动,如:

 

[root@xiaoluo ~]# chkconfig --list | grep mysqld mysqld             0:关闭    1:关闭    2:关闭    3:关闭    4:关闭    5:关闭    6:关闭

 

我们发现mysqld服务并没有开机自动启动,我们当然可以通过 chkconfig mysqld on 命令来将其设置成开机启动,这样就不用每次都去手动启动了

 

[root@xiaoluo ~]# chkconfig mysqld on [root@xiaoluo ~]# chkconfig --list | grep mysql mysqld             0:关闭    1:关闭    2:启用    3:启用    4:启用    5:启用    6:关闭

 

mysql数据库安装完以后只会有一个root管理员账号,但是此时的root账号还并没有为其设置密码,在第一次启动mysql服务时,会进行数据库的一些初始化工作,在输出的一大串信息中,我们看到有这样一行信息 :

 

/usr/bin/mysqladmin -u root password 'new-password'  // 为root账号设置密码 

 

所以我们可以通过 该命令来给我们的root账号设置密码(注意这个root账号是mysql的root账号,非Linux的root账号)

 

[root@xiaoluo ~]# mysqladmin -u root password 'root'  // 通过该命令给root账号设置密码为 root

 

此时我们就可以通过 mysql -u root -p 命令来登录我们的mysql数据库了

 

五、mysql数据库的主要配置文件

1./etc/my.cnf 这是mysql的主配置文件

我们可以查看一下这个文件的一些信息

复制代码
[root@xiaoluo etc]# ls my.cnf  my.cnf  [root@xiaoluo etc]# cat my.cnf  [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock user=mysql # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0  [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
复制代码

2./var/lib/mysql   mysql数据库的数据库文件存放位置

我们的mysql数据库的数据库文件通常是存放在了/ver/lib/mysql这个目录下

 

复制代码
[root@xiaoluo ~]# cd /var/lib/mysql/ [root@xiaoluo mysql]# ls -l 总用量 20488 -rw-rw----. 1 mysql mysql 10485760 4月   6 22:01 ibdata1 -rw-rw----. 1 mysql mysql  5242880 4月   6 22:01 ib_logfile0 -rw-rw----. 1 mysql mysql  5242880 4月   6 21:59 ib_logfile1 drwx------. 2 mysql mysql     4096 4月   6 21:59 mysql  // 这两个是mysql数据库安装时默认的两个数据库文件 srwxrwxrwx. 1 mysql mysql        0 4月   6 22:01 mysql.sock drwx------. 2 mysql mysql     4096 4月   6 21:59 test  // 这两个是mysql数据库安装时默认的两个数据库文件
复制代码

 

我们可以自己创建一个数据库,来验证一下该数据库文件的存放位置

 

复制代码
创建一个我们自己的数据库: mysql> create database xiaoluo; Query OK, 1 row affected (0.00 sec)  [root@xiaoluo mysql]# ls -l 总用量 20492 -rw-rw----. 1 mysql mysql 10485760 4月   6 22:01 ibdata1 -rw-rw----. 1 mysql mysql  5242880 4月   6 22:01 ib_logfile0 -rw-rw----. 1 mysql mysql  5242880 4月   6 21:59 ib_logfile1 drwx------. 2 mysql mysql     4096 4月   6 21:59 mysql srwxrwxrwx. 1 mysql mysql        0 4月   6 22:01 mysql.sock drwx------. 2 mysql mysql     4096 4月   6 21:59 test drwx------. 2 mysql mysql     4096 4月   6 22:15 xiaoluo  // 这个就是我们刚自己创建的xiaoluo数据库 [root@xiaoluo mysql]# cd xiaoluo/ [root@xiaoluo xiaoluo]# ls db.opt
复制代码

3./var/log mysql数据库的日志输出存放位置

我们的mysql数据库的一些日志输出存放位置都是在/var/log这个目录下

复制代码
[root@xiaoluo xiaoluo]# cd  [root@xiaoluo ~]# cd /var/log [root@xiaoluo log]# ls amanda                cron           maillog-20130331   spice-vdagent.log anaconda.ifcfg.log    cron-20130331  mcelog             spooler anaconda.log          cups           messages           spooler-20130331 anaconda.program.log  dirsrv         messages-20130331  sssd anaconda.storage.log  dmesg          mysqld.log         tallylog anaconda.syslog       dmesg.old      ntpstats           tomcat6 anaconda.xlog         dracut.log     piranha            wpa_supplicant.log anaconda.yum.log      gdm            pm-powersave.log   wtmp audit                 httpd          ppp                Xorg.0.log boot.log              ibacm.log      prelink            Xorg.0.log.old btmp                  lastlog        sa                 Xorg.1.log btmp-20130401         libvirt        samba              Xorg.2.log cluster               luci           secure             Xorg.9.log ConsoleKit            maillog        secure-20130331    yum.log
复制代码

 

其中mysqld.log 这个文件就是我们存放我们跟mysql数据库进行操作而产生的一些日志信息,通过查看该日志文件,我们可以从中获得很多信息

 

因为我们的mysql数据库是可以通过网络访问的,并不是一个单机版数据库,其中使用的协议是 tcp/ip 协议,我们都知道mysql数据库绑定的端口号是 3306 ,所以我们可以通过 netstat -anp 命令来查看一下,Linux系统是否在监听 3306 这个端口号:

结果如上所示,Linux系统监听的3306端口号就是我们的mysql数据库!!!!

posted @ 2017-03-20 15:21 朱杰兵 阅读(99) | 评论 (0)编辑 收藏

     摘要: run as --> run configuration  阅读全文

posted @ 2017-03-07 16:45 朱杰兵 阅读(206) | 评论 (0)编辑 收藏

1、下载源码,解压缩后编译源码。
$ wget http://download.redis.io/releases/redis-2.8.3.tar.gz 
$ tar xzf redis-2.8.3.tar.gz
$ cd redis
-2.8.3
$ make
make 的时候可能会遇到问题,
(1).缺少gcc,执行
yum -y install gcc ,解决
(2).error: jemalloc/jemalloc.h: No such file or directory解决方法
执行
make MALLOC=libc


2、编译完成后,在Src目录下,有三个可执行文件redis-server、redis-benchmark、redis-cli,以及根目录下有一个redis.conf。然后把这四个文件拷贝到一个目录下。
到src目录下执行命令
mkdir /usr/redis 
cp redis
-server /usr/redis
cp redis
-benchmark /usr/redis
cp redis
-cli /usr/redis
这里要切换到根目录
cp redis.conf
/usr/redis
cd
/usr/redis
3、启动Redis服务。
$ ./redis-server
会见到redis的logo
 4、然后用客户端测试一下是否启动成功。
$ ./redis-cli 
redis
> set foo bar
OK
redis
> get foo "bar"


-------------------------------------------------------------------------------------------------------------------------------
但是这样启动,如果关闭窗口,服务就会关闭
可为redis服务启动指定配置文件,配置文件 redis.conf 在Redis根目录下。
修改daemonize为yes,即默认以后台程序方式运行

这样就可以执行./redis-server ./redis.conf 进行后台启动

关闭redis服务 ./redis-cli shutdown

 

posted @ 2017-03-02 14:58 朱杰兵 阅读(139) | 评论 (0)编辑 收藏