充电桩项目日志

从老师得到一个叫echarge的上古项目,为了让项目以后有更强的可扩展性只能先建立一个基于maven的javaweb项目,再将老的代码一点一点放到新项目当中,过程中会遇到很多奇怪的问题,这是此次工作过程的详细记录

创建javaweb项目

利用maven-archetype构建项目
CS_EChargeProject_javaweb - 图1

把资源包建了
CS_EChargeProject_javaweb - 图2
配置tomcat
CS_EChargeProject_javaweb - 图3
CS_EChargeProject_javaweb - 图4
注意以上这些地方,在deployment下,点击加号就能创建一个artifect,war exploded是不压缩直接发布的,war是压缩之后发布的

开启tomcat的热重载
CS_EChargeProject_javaweb - 图5
会遇上找不到jsp文件的问题,解决方法就是maven重新打包先clean在package,注意观察maven打包之后的target文件夹
CS_EChargeProject_javaweb - 图6

依赖导入

下面这些export是从maven仓库到处到lib下的操作
CS_EChargeProject_javaweb - 图7
在此之上再添加lib包的依赖直接点加号
CS_EChargeProject_javaweb - 图8
直接选择lib文件夹目录就行
可能会遇到maven打包找不到lib文件夹的问题,解决方案如下

  1. <plugin>
  2. <artifactId>maven-compiler-plugin</artifactId>
  3. <version>3.8.0</version>
  4. <configuration>
  5. <source>1.8</source>
  6. <target>1.8</target>
  7. <encoding>UTF-8</encoding>
  8. <!--根据你把lib放的位置,但需要注意的是,mac平台上,路径分隔符用的"/",windows下用的分隔符是"\"-->
  9. <compilerArguments>
  10. <extdirs>src/main/webapp/WEB-INF/lib</extdirs>
  11. </compilerArguments>
  12. </configuration>
  13. </plugin>

参考https://blog.csdn.net/carlos1992/article/details/92030321

log4j没启动的问题
CS_EChargeProject_javaweb - 图9
就是把log4j.properties放在resources里面

https://blog.csdn.net/qq_27127145/article/details/84578161

用这种构建方法连接数据库要做如下配置
CS_EChargeProject_javaweb - 图10
src/context.xml中的内容如下

  1. <?xml version='1.0' encoding='utf-8'?>
  2. <!--
  3. Licensed to the Apache Software Foundation (ASF) under one or more
  4. contributor license agreements. See the NOTICE file distributed with
  5. this work for additional information regarding copyright ownership.
  6. The ASF licenses this file to You under the Apache License, Version 2.0
  7. (the "License"); you may not use this file except in compliance with
  8. the License. You may obtain a copy of the License at
  9. http://www.apache.org/licenses/LICENSE-2.0
  10. Unless required by applicable law or agreed to in writing, software
  11. distributed under the License is distributed on an "AS IS" BASIS,
  12. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  13. See the License for the specific language governing permissions and
  14. limitations under the License.
  15. -->
  16. <!-- The contents of this file will be loaded for each web application -->
  17. <Context>
  18. <!-- Default set of monitored resources -->
  19. <WatchedResource>WEB-INF/web.xml</WatchedResource>
  20. <!-- Uncomment this to disable session persistence across Tomcat restarts -->
  21. <!--
  22. <Manager pathname="" />
  23. -->
  24. <!-- Uncomment this to enable Comet connection tacking (provides events
  25. on session expiration as well as webapp lifecycle) -->
  26. <!--
  27. <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
  28. -->
  29. <Resource
  30. name="jdbc/echargeconn"
  31. type="javax.sql.DataSource"
  32. auth="Container"
  33. maxActive="-1"
  34. maxIdle="20"
  35. maxWait="10000"
  36. username="root"
  37. password="root123"
  38. driverClassName="com.mysql.jdbc.Driver"
  39. url="jdbc:mysql://localhost:3306/db_echg?characterEncoding=UTF-8"
  40. />
  41. </Context>

解决log4j的日志输出问题,刚才在resources下的log4j.properties中写下如下的配置文件

  1. ### set log levels ###
  2. log4j.rootLogger = debug,stdout,D,E
  3. log4j.appender.stdout = org.apache.log4j.ConsoleAppender
  4. log4j.appender.stdout.Target = System.out
  5. log4j.appender.stdout.layout = org.apache.log4j.PatternLayout
  6. log4j.appender.stdout.layout.ConversionPattern = [%-5p] %d{yyyy-MM-dd HH\:mm\:ss,SSS} method\:%l%n%m%n
  7. log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
  8. log4j.appender.D.File = /Users/username/Downloads/Project/eecharge/logs/debug.log
  9. log4j.appender.D.Append = true
  10. log4j.appender.D.Threshold = DEBUG
  11. log4j.appender.D.layout = org.apache.log4j.PatternLayout
  12. log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH\:mm\:ss} [ %t\:%r ] - [ %p ] %m%n
  13. log4j.appender.E = org.apache.log4j.DailyRollingFileAppender
  14. log4j.appender.E.File = /Users/username/Downloads/Project/eecharge/logs/error.log
  15. log4j.appender.E.Append = true
  16. log4j.appender.E.Threshold = ERROR
  17. log4j.appender.E.layout = org.apache.log4j.PatternLayout
  18. log4j.appender.E.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
  19. log4j.appender.DATABASE=com.TJPU.ECharge.util.JDBCExtAppender
  20. log4j.appender.DATABASE.Threshold=debug
  21. log4j.appender.DATABASE.sql=INSERT INTO t_errorlog(EL_Type,EL_Memo,EL_Time) VALUES ('%-5p',' [%t] %-5p %c\:%L - %m%n %x ','%d{yyyy-MM-dd HH\:mm\:ss}')
  22. log4j.appender.DATABASE.layout=org.apache.log4j.PatternLayout
  23. log4j.appender.DATABASE.layout.ConversionPattern=%d - [%t] %-5p %c\:%L - %m%n

log4j.appender.D.File = /Users/username/Downloads/Project/eecharge/logs/debug.log
log4j.appender.E.File = /Users/username/Downloads/Project/eecharge/logs/error.log
这两个位置填日志的输出路径
参考博客:最详细的Log4J使用教程

然后再设置默认访问页面也就是欢迎页
WEB-INF下的web.xml中添加如下代码

  1. <welcome-file-list>
  2. <welcome-file>index.html</welcome-file>
  3. <welcome-file>index.htm</welcome-file>
  4. <welcome-file>index.jsp</welcome-file>
  5. <welcome-file>Index.jsp</welcome-file>
  6. <welcome-file>default.html</welcome-file>
  7. <welcome-file>default.htm</welcome-file>
  8. <welcome-file>default.jsp</welcome-file>
  9. </welcome-file-list>

https://blog.csdn.net/qq_43510031/article/details/106388148

从网页进入项目

这个配置在Tomcat里面,用Tomcat配置的URL进入网站才能进入

数据库连接

navicat连接到数据库的时候除了一点问题,把数据库的权限改为所有人就好了,navicat删除旧连接再建立新连接就把问题解决了,如果从宝塔的数据库管理中看不到用sql脚本建立的服务器,就点击下面的从服务器获取

git

新建项目git,本地项目push被rejected,切换到其他的branch,输入命令

  1. git pull origin master allow-unrelated-histories

就能push了

从windows导入这个项目

标记资源包,右键mark
CS_EChargeProject_javaweb - 图11
标记这三组文件为如下方式:
CS_EChargeProject_javaweb - 图12

导入java 1.8 点击右上角的configure,就能自动导入java版本

还遇到了tomcat版本问题,一开始怀疑是依赖的问题,后来用了最新的tomcat 9 就没问题了
tomcat输出有乱码