发表于: 2017-06-10 21:37:36
1 1390
【说明】今天最后关头竟然出现了GUG,呵呵
1),今日完成:
先解决昨天遗留的问题
1,maven jetty plugins
这个没有解决呢
2,ssm系统出现内存泄漏
这个也是先放着呢
2)
mysql 这个命令是客户端程序,不是服务器端程序。
服务器启动的进程是 mysqld.
打开 iptables 3306 端口
远程连接新建一个帐号(帐号名不能为 root)。
如:添加一个用户名为 db_user,密码为 db_pass,授权为 % (% 表示所有外围 IP 能连接)对 db_name 数据库所有权限,命令如下
# mysql -uroot -p
MySQL [(none)]> grant all privileges on db_name.* to db_user@’%’ identified by ‘db_pass’; #授权语句,特别注意有分号
MySQL [(none)]> flush privileges;
MySQL [(none)]> exit; #退出数据库控制台,特别注意有分号
create database wiki default charset utf8;
use wiki;
source /your_wiki_sql_file_path/wiki.sql
3)
web 项目开发中什么情况下需要记录 log 日志?
不管是 api 还是 web 开发,一般在什么情况下需要自己定义写入 log 日志?
1. 错误异常
2.sql 语句
3.sql 操作后的结果
4. 接口请求及响应
5. 缓存命中的请求
6. 程序逻辑的重要节点
最后 log 随着服务量变大,会急剧上升,合理选择会对降低成本有效。
流程重要节点,如数据落地、状态变化;
接口请求和响应报文,防止互相扯皮用;
用户操作记录;
异常场景或异常捕获后。
1,记录程序抛出的异常时,需要记录相应的 log 日志。
2,多用户系统可以考虑加上用户操作日志。
3,需要 debug sql 时可以加上 sql 操作日志。
4,当系统有定时任务或者其他的系统操作时可以加上任务操作日志便于查询。
4)
开了这么多页面!!!
--------------------------------
5)
#!/bin/sh
SERVICE_HOME=/data/skill/skill-service
LIB_DIR=${SERVICE_HOME}/lib
LOGS_DIR=${SERVICE_HOME}/logs
ARCHIVE_SUFFIX=`date +%Y%m%d-%H%M`
MAIN_CLASS="com.ptteng.common.skill.server.Server"
JAVA_ARGS="-server -Xms64m -Xmx64m -XX:NewSize=16m -XX:+UseConcMarkSweepGC -XX:CMSInitiatingOccupancyFraction=78 -XX:ThreadStackSize=256 -Xloggc:${SERVICE_HOME}/logs/gc.log"
JAVA_ARGS="${JAVA_ARGS} -Dsun.rmi.dgc.server.gcInterval=3600000 -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.server.exceptionTrace=true -Djava.rmi.server.codebase=file:/usr/lib/jvm/java-6-sun/bin/"
JAVA_OPTS="${JAVA_OPTS} -Dsun.rmi.transport.tcp.responseTimeout=10000 -Dsun.rmi.transport.tcp.handshakeTimeout=10000 -Dsun.rmi.transport.proxy.connectTimeout=10000"
#JAVA_ARGS="${JAVA_ARGS} -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=11777"
CLASSPATH=$CLASSPATH:${SERVICE_HOME}/classes/
files=`ls -1 ${LIB_DIR}`
for file in ${files} ;do
CLASSPATH=$CLASSPATH:${LIB_DIR}/${file}
done
export CLASSPATH
mv ${LOGS_DIR}/stdout.log ${LOGS_DIR}/stdout.log.${ARCHIVE_SUFFIX}
mv ${LOGS_DIR}/stderr.log ${LOGS_DIR}/stderr.log.${ARCHIVE_SUFFIX}
mv ${LOGS_DIR}/gc.log ${LOGS_DIR}/gc.log.${ARCHIVE_SUFFIX}
java ${JAVA_ARGS} ${MAIN_CLASS} 1>${SERVICE_HOME}/logs/stdout.log 2>${SERVICE_HOME}/logs/stderr.log&
echo "com.ptteng.common.skill.server.Server starting..."
6)
中的main函数,在java web应用中,没有任何的作用,web应用启动是不会执行类中的main方法的,
因为只会调用tomcat或者其它应用服务器的main,然后通过web.xml的配置去加载其它类,公司的java web项目的main方法,纯属测试用的。
web 项目是由容器启动的。也就是服务器,tomcat 之类,
容器启动的首页面,产生. do 走 java 文件时,不用有 main()函数?
是根据反射机制查找对应文件的。
就比如说你 A 类里有个主函数,启动后调用 B 类的方法,这里你只要实例化 B 后就可以用了,你不会要求 B 也有主函数的。
A 类相当于服务器的话,根据浏览器访问的路径,找到对应的 B,执行完返回给浏览器。
---------------------------------------------------
package jetty;
import org.mortbay.jetty.Connector;
import org.mortbay.jetty.Server;
import org.mortbay.jetty.nio.SelectChannelConnector;
import org.mortbay.jetty.webapp.WebAppContext;
public class jettyWebStart {
/** port */
private int port = 80;
protected String charset = "UTF-8";
public jettyWebStart() {
}
public jettyWebStart(int port) {
this.port = port;
}
public jettyWebStart(int port, String charset) {
super();
this.port = port;
this.charset = charset;
}
/**
* 服务器启动。
*/
public void start() {
Server server = new Server();
Connector connector = new SelectChannelConnector();
connector.setPort(this.port);
server.setConnectors(new Connector[] { connector });
WebAppContext webAppContext = new WebAppContext();
webAppContext.setContextPath("/compress");
webAppContext.setResourceBase("./webapp");
webAppContext.setDefaultsDescriptor("/jetty/webdefault.xml");
server.setHandler(webAppContext);
try {
server.start();
}
catch (Exception e) {
throw new RuntimeException(e);
}
}
public static void main(String[] args) {
jettyWebStart jettyWebStarter = new jettyWebStart();
jettyWebStarter.start();
}
}
--------------------------------------
7)
当在项目中报错为:javax.servlet.jsp.* 时,这时说明需要 jsp-api.jar。
如果报错信息为:javax.servlet.http.* 时,这时说明需要 servlet-api.jar
这两个包在 tomcat 的安装目录下的 lib 文件夹下都可以找到,可以直接拷贝复制到项目工程的 lib 下,
也可以放在 JDK 中,需要放在 C:\Program Files\Java\jdk1.7.0\jre\lib\ext 这个目录下就可以了。
有次出现错误为:
javax.servlet.jsp.JspException cannot be resolved to a type
也加入了相应的包了,但是还是报错,关了再开 JSp 还是报错,在 a 标签中 href 的长度超过了一定的值之后就会报这样的错误,以至于我认为不是 jsp-api.jar 的原因,后来偶然恍然大悟啊,加入 jsp-api.jar 之后,我在 eclipse 的菜单栏中的 Project 下的选项 clean 清理一下这个项目之后就好了,唉,费了我好大的劲啊!!!!!
------------------------
80端口是服务器开启的,客户端的连接网站时本地是随即开启端口的,大于1024的端口,如果要封客户端不让访问网站的话,封80端口就可以了,但是方向不要弄错了。
1.在路由器的防火墙中限制制定ip不可以访问80端口。
2.在本地的防火墙禁止本机向外部端口80进行连接,而不是做tcp/ip筛选,那样是没用的,只能是别人无法访问这台主机的80端口罢了。
-----------------------------
8)
------------------------------
报错1:
报错2:
---------------------------
9)
jetty 8 是支持 java 1.6 + 的,servlet需要是3.0 。
----------------------
2)明日计划
任务四
3)疑难问题
见上面
4)思考总结
no zuo no die !
评论