开发环境配置(netbeans+ant迁移到eclipse+maven)
新公司入职,接手一个离职人员的项目,拿到的源码是以一个压缩包,用netbeans开发,ant管理;前端:jsp+extjs,后端:springmvc+hibernate+activiti+spring;
开搞;
直接导入项目,发现不能识别;
看到源代码里边有build.xml,遂搜索;
按照《在Eclipse中通过build.xml导入工程》操作;
有些开源工程是用ant编译的,那么这时候有时可以通过导入工程中的build.xml来将工程导入到Eclipse中,步骤如下:
选择菜单File->New->Other…->Java->Java Project from Existing Ant Buildfile,如下图:
提示Specified buildfile does not contain a javac task
解决方法为:
加入下面一行:
<javac srcdir="src" destdir="bin" />
完整的为:
<?xml version="1.0" encoding="UTF-8"?>
<project name="HW.makejar" default="makejar" basedir=".">
<target name ="makejar" description="Create a jar for the HW project">
<jar jarfile="HelloWorld.jar" includes="*.class" basedir="bin" />
</target>
<javac srcdir="src" destdir="bin" />
</project>
再次导入:
打开jsp文件,乱码;
部署项目报错,看日志是配置有问题,引用了开发人员本地的文件夹路径;
2015/4/15
决定换eclipse+maven;
源码管理目前有tfs,svn,自己装个git;
配置pom.xml,将之前在lib目录下的jar包配置好,设置编译插件;
将lib拷贝到一个临时目录,然后一个一个从maven在线仓库获取配置,检查eclipse里边的maven依赖,和临时目录对比,有的就将临时目录里边删掉;
用Pom.xml的Dependency Hierarchy排除更好一些,带搜索功能;
下载jar包有时候好慢,httpclient下载好慢;
imgscalr-lib-3.1只有4.x版本以上的;目前版本是4.2;
jgraphx-1.10.4.2,目前版本是jgraphx-1.10.4.1;
mybatis-3.1.1,目前版本是mybatis-3.2.2
xstream-1.3.1,目前版本是xstream-1.4.2;
问题:
ArtifactTransferException: Failure to transfer org.springframework.security:spring-security-core:jar:3.1.3.RELEASE from http://repo.maven.apache.org/maven2 was cached in the local repository, resolution will not be reattempted until the update interval
of central has elapsed or updates are forced. Original error: Could not transfer artifact org.springframework.security:spring-security-core:jar:3.1.3.RELEASE from/to central (http://repo.maven.apache.org/maven2): The operation was cancelled.
删除本地仓的对应文件夹,update maven project;
问题:有些包在WEB-INF/lib目录下,maven在线仓没有的;
修改pom.xml添加编译参数,项目build path里边添加依赖(Add Class Folder);
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
<encoding>UTF-8</encoding>
<compilerArguments>
<extdirs>src\main\webapp\WEB-INF\lib</extdirs>
</compilerArguments>
</configuration>
</plugin>
</plugins>
启动项目报错:
org.springframework.beans.factory.BeanDefinitionStoreException: Line 17 in XML document from ServletContext resource [/WEB-INF/spring-context.xml] is invalid; nested exception is org.xml.sax.SAXParseException: Document root element "beans", must match DOCTYPE root "null".
org.xml.sax.SAXParseException: Document root element "beans", must match DOCTYPE root "null".
原因:XFire Core lib 中有Spring1.2.6 与Spring 2 冲突!
先注释掉pom.xml里边pdfservlet中的依赖;
修改数据库密码和本地开发环境一样;
grant all privileges on *.* to root@"%" identified by "root" with grant option;
flush privileges;
修改启动文件的脚本startup.sh
shell判断文件是否存在:
warFile="/var /log/httpd/access.log"
if [ -f "$warFile" ]; then
……
fi
修改hostname为localhost
root登陆执行,echo "127.0.0.1 `hostname` localhost localhost.localdomain" >/etc/hosts
修改mysql的登陆密码为root;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
页面报错:
org.apache.jasper.JasperException: /WEB-INF/views/management/systemsettings.jsp(207,95) The function getUserName must be used with a prefix when a default namespace is not specified
linux下的mysql有个表大小写问题
为了消除linux环境下大小写敏感问题,设置如下:vi /etc/mysql/my.cnf
在[mysqld]中添加:
lower_case_table_names = 1
vi 修改的时候如果要上下移动鼠标,按esc退出编辑模式来移动;
修改好之后要重启tomcat;
/etc/init.d/mysql restart
2015/4/16
重新导入数据,重新启动项目;
Linux建立快捷方式到tomcatlog目录,就不用每次都敲命令cd了
ln -s /app/tomcat/logs/catalina.out tomcatlogs
查看当前服务器ip;
Ifconfig
启动后访问后台报错:
At least one JAR was scanned for TLDs yet contained no TLDs. Enable debug logging for this logger for a complete list of JARs that were scanned but no TLDs were found in them. Skipping unneeded JARs during scanning can improve startup time and JSP compilation time.
这样的问题是你的页面中含有<!---->的注释 去掉就好了,tomcat7.0.20.
tomcat 7对EL表达式的语法要求比较严格,例如"${owner.new}"因包含关键字new就会导致解析出错。
问题是出来了,怎么解决呢?有三种,如下:
第一种:严格遵守java规范,修改对象的属性名称,要求不包含java关键字;
第二种:修改EL表达式,例如"${owner.new}"可以修改为"${owner['new']}";
第三种:修改tomcat属性,忽略对EL表达式的关键字检查。修改$CATALINA_BASE/conf/catalina.properties文件,添加org.apache.el.parser.SKIP_IDENTIFIER_CHECK=true选项。
注意linux下文件的换行符;
貌似这样改不行;
问题:
信息: validateJarFile(/app/tomcat/webapps/srpm/WEB-INF/lib/servlet-api-2.5-20081211.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
解决方法:
1)删除项目WEB-INF/lib下的 servlet-api.jar
2)删除之前的发布文件夹
重新发布运行即可解决问题。
我是删除了war包里边的servlet-api-2.5-20081211.jar才启动起来了;
tomcat启动时要优先加载其lib下的包,这样就会出现冲突.
Linux下上移一行;光标移动当当前行,然后按pp删除,移动到目标行,按p粘贴;
删除行首空格:;
Linux上的c:url变成://
坑爹的ubuntu,获取的pageContext竟然是/;
server.xml配置:
修改为:
设置eclipse打开jsp文件都是utf-8,设置Content Types里边的Default encoding为UTF-8;
访问某个页面报错:
org.apache.jasper.JasperException: /WEB-INF/views/home/welcome.jsp(32,197) The function DisplayName must be used with a prefix when a default namespace is not specified
linux下没有这个问题;
换个最新的tomcat版本:6.0.43,问题依旧;
换用原来默认的jstl.jar和standard.jar,也不行,问题依旧;
这个是调用了类里边的方法,
The problem with your code is that the code run locally is run on Tomcat 7 and the code run on the server is run on Tomcat 6.
As soon as invocation of methods with parameters (those ()) is the feature of EL 2.2 (and higher) and it is accompanied by Servlet 3.0 compatible containers (thus Tomcat 7) your code runs fine locally.
As soon as this code is run on a Servlet 2.5 container (thus Tomcat 6) you get the mentioned error.
Still, "property-like" access (without ()) is supported by both servlet containers.
换tomcat7试试;
换用maven插件启动:
Caused by: java.lang.LinkageError: loader constraint violation: loader (instance of org/apache/catalina/loader/WebappClassLoader) previously initiated loading for a different type with name "javax/servlet/ServletContext"
是因为activiti-mule引用了servlet-api,排除掉它;
引入新的:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
<scope>provided</scope>
</dependency>
tomcat6还是有问题,换tomcat7就没事了;
报错:
Caused by: org.hibernate.InstantiationException: could not instantiate test objectcom.sinotaiyo.srpm.datamodels.UserGroup
缺commons.collections包;
java.lang.Error: Unresolved compilation problems:
XStream cannot be resolved to a type
XStream cannot be resolved to a type
JettisonMappedXmlDriver cannot be resolved to a type
at com.sinotaiyo.zFileUtility.JsonHelp.javaBeanToJson(JsonHelp.java:67)
缺包;引入xstream包;
liunx终端backspace不能删除字符;
主要是由于安装的是vim.tiny版本,不是vim完整版。
两种方法:
1.直接在终端输入命令 sudo apt-get install vim ,按步操作安装好vim即可。
2. 修改/etc/vim/vimrc.tiny 文件,将set compatible 设置成set nocompatible ,添加 set backspace=2 这是因为有时候系统会默认vim兼容vi,所以使用vi的命令。
发牢骚:
1、 坑好多,jsp无爱啊,各种兼容性问题,好怀念模板引擎,好怀念读写分离,只想安静的做个后端;
2、 还是要用maven管理项目,全部配置放到pom.xml,包括包依赖,包括插件,包括jdk level,新人上手就快很多了;
3、 刚刚接触了互联网项目,都是新技术,现在又回到老一代的技术,怎么回事啊,很多事试了才知道,没人在前面指路;
总结:
1、时间紧的话还是用自己熟悉的开发环境,虽然要从零搭建,但省去了熟悉新开发环境的过程,这可能是个漫长的过程,前面很多很多的坑;
2、maven很强大,又一次体会,依赖包管理、丰富优秀的插件都很好用;
开发环境配置(netbeans+ant迁移到eclipse+maven)的更多相关文章
- Java 开发环境配置--eclipse工具进行java开发
Java 开发环境配置 在本章节中我们将为大家介绍如何搭建Java开发环境. Windows 上安装开发环境 Linux 上安装开发环境 安装 Eclipse 运行 Java Cloud Studio ...
- 基于Eclipse的Hadoop应用开发环境配置
基于Eclipse的Hadoop应用开发环境配置 我的开发环境: 操作系统ubuntu11.10 单机模式 Hadoop版本:hadoop-0.20.1 Eclipse版本:eclipse-java- ...
- windows eclipse直接访问远程linux hadoop开发环境配置(符合实际开发的做法)
CDH 5.x搭建请参考CentOS 7离线安装CDH 5.16.1完全指南(含各种错误处理). 如果使用的是cloudera quickstart vm,则只能在linux服务器中使用eclipse ...
- Eclipse+Tomcat+Axis2+ADT开发环境配置
一.安装Eclipse和Tomcat 1.安装Eclipse: 2.解压缩安装apache-tomcat-6.0.41 3.tomcat配置环境变量(4个) TOMCAT_HOME D:\An ...
- 基于Netbeans的安卓Android开发环境配置 - CSDN博客
原文:基于Netbeans的安卓Android开发环境配置 - CSDN博客 基于Netbeans的安卓Android开发环境配置 一.准备工作 NetBeans 勾选网页中的Accept-选择对应系 ...
- 开发环境配置--Ubuntu+Qt4+OpenCV(三)
同系列文章 1. 开发环境配置--Ubuntu+Qt4+OpenCV(一) 2. 开发环境配置--Ubuntu+Qt4+OpenCV(二) 3. 开发环境配置--Ubuntu+Qt4+OpenCV(三 ...
- Java基础之一:Java开发环境配置
Java 开发环境配置 window系统安装java 下载JDK,地址:http://www.oracle.com 在下载页面中你需要选择接受许可,并根据自己的系统选择对应的版本,本文以 Window ...
- Java-Runoob:Java 开发环境配置
ylbtech-Java-Runoob:Java 开发环境配置 1.返回顶部 1. Java 开发环境配置 在本章节中我们将为大家介绍如何搭建Java开发环境. Windows 上安装开发环境 Lin ...
- Mac开发环境配置 就喜欢折腾
暑假放假,开始用自己的电脑配置开发环境进行学习. 虚拟机安装VMware tools也遇到一些问题.折腾之后解决,遇到各种问题,谷歌后都能解决. 折腾了几天虚拟机下的Ubuntu,发现mac带虚拟机太 ...
随机推荐
- Oracle ->> ENABLE VALIDATE & DISABLE VALIDATE
这里找到一篇博文对这两个用法的解释:http://www.cnblogs.com/rootq/archive/2008/09/23/1297400.html 启用约束: enable( validat ...
- wust 1061 链表的合并
怒刷存在感! ~从此wustoj踏上ty博客这样高端霸气上档次的地方啊啦啦~ 只是顺便看了下保研复试题,原来觉得链表好讨厌,现在数据结构学的没办法了,写了个大概是标准的链表合并的写法吧... #inc ...
- Android应用开发学习笔记之菜单
作者:刘昊昱 博客:http://blog.csdn.net/liuhaoyutz Android中的菜单分为选项菜单(OptionMenu)和上下文菜单(Context Menu).通常使用菜单资源 ...
- hdu 3177
题目大意:向体积为v的山洞中搬运n个物品,每个物品具有(a,b) 属性.其中a是停放体积,b是移动体积.输出这个山东是否能放下这n个物品 解题思路: 1)当前物品能否放进山洞取决于当前物品的的移动体积 ...
- windows服务异常值framework版本
sc query WCService | find /i "state"if %errorlevel% == 0 ( net start "WCService" ...
- pythonhttp
import urllib.requestimport http.cookiejar from urllib.error import URLError,HTTPError import urllib ...
- 总结Selenium自动化测试方法(六)常见的异常错误处理
六.常见的异常错误处理 NoSuchElementException: Message: Unable to locate element: {"method":"xpa ...
- leetcode:Power of Two
Given an integer, write a function to determine if it is a power of two. 分析:这道题让我们判断一个数是否为2的次方数(而且要求 ...
- 《OD学Flume》20160806Flume和Kafka
一.Flume http://flume.apache.org/FlumeUserGuide.html Flume是一个分布式的,可靠的,可用的,非常有效率的对大数据量的日志数据进行收集.聚集.移动信 ...
- memcached内存管理及key value长度限制
1)什么是内存碎片?内存是大小有限的资源.例如把内存比作一张小床,来了一个小伙伴,可以睡下,再来一个小伙伴也能睡下.现在两个人了,他们点了差不多的大小的位置(资源),位置还有剩下.然后再来一个小胖子, ...