Eclipse + nginx module + debug
eclipse调试(debug)弹出错误

eclipse调试(debug)弹出错误
警告信息:
Cannot connect to VM
com.sun.jdi.connect.TransportTimeoutException
控制台错误信息:
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)
ERROR: transport error 202: unable to create socket: winsock error 87
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:741]
百度了两天都没能解决这个问题,我⼀直都不开防⽕墙的,ping localhost也能连上,神奇的是java6能debug,java7不能debug
刚刚仔细看错误信息,看到⾥⾯有socket这个词,难道debug还需要socket吗?事实确实如此,不管是java project调试,tomcat调试、远程调试都需要socket。
既然跟socket有关,那就是跟⽹络有关。
但是我电脑也能上⽹啊,难道配置不对?抱着这个想法,我打开万能的360断⽹急救箱强⾏恢复⽹络配置,重启机器后就能debug啦~
哟西哟西~。
Nginx常见错误及解决方法

纽斯达科技Nginx常见错误与解决方法纽斯达科技2014-10-25文档状态目的:在Nginx服务器出现故障时,能快速定位并解决相关错误。
:本文档仅供部使用,请勿外传概述:Nginx常见错误与问题之解决方法技术指南。
安装环境:系统环境:redhat enterprise 6.5 64bit1、Nginx 常见启动错误有的时候初次安装nginx的时候会报这样的错误sbin/nginx -c conf/nginx.conf报错容:sbin/nginx: error while loading shared libraries: libpcre.so.1:cannot open shared object file: No such file or directory启动时如果报异常error while loading shared libraries: libpcre.so.1: cannot openshared object file: No such file or directory 这说明我们的环境还不是和启动需要小小的配置一下解决方法(直接运行):32位系统[rootsever lib]# ln -s /usr/local/lib/libpcre.so.1 /lib64位系统[rootsever lib]# ln -s /usr/local/lib/libpcre.so.1 /lib64然后执行ps -ef | grep nginx 查看nginx进程确认是否真的已经启动了,在进程列表里会有最起码两个,worker(nginx工作进程)和master(nginx主进程)root 4349 1 0 02:24 ? 00:00:00 nginx: master process sbin/nginx -cconf/nginx.confnginx 4350 4349 0 02:24 ? 00:00:00 nginx: worker processroot 4356 28335 0 02:30 pts/1 00:00:00 grep nginxNGINX 就OK了2、400 bad request错误的原因和解决办法配置nginx.conf相关设置如下.client_header_buffer_size 16k;large_client_header_buffers 4 64k;根据具体情况调整,一般适当调整值就可以。
eclipse的一些基本操作

eclipse的⼀些基本操作⾸页:调节代码智能提⽰,⾃⼰去window找到对应的⽂件java javascript html xml调节就⾏,很简单1、如何新建java项⽬或Java Web项⽬在eclipse中的Project Explorer 视图中,右键--> New --> Project,然后根据出现的对话框,⾥⾯选择Java节点或者web节点,ide 会根据选择的类型创建不同的项⽬。
输⼊Project name,现在以创建Dynamic Web Project 为例,然后点击Next 按钮,效果如下图:在上⾯对话框输⼊Project name,选择target runtime(项⽬运⾏的服务器),module version (模块版本,⼀般选最⾼版本)等等,接下来点击Next按钮,进⼊src⽬录结构,可以⾃⼰去搭建,然后下⾯有⼀个Default output folder ,效果如下:这个是⽤于调整java类⽂件编译之后的保存⽬录,默认是在根⽬录下的build下的classes 下,⼀般不建议放在这⾥,毕竟不安全。
建议修改值为WebContent\WEB-INF\classess接下来点击Next 按钮,进⼊如下页⾯:Context root : 表⽰项⽬的发布名称,也就是我发布到tomcat webapps下的⽬录,实践证明:如果我改成上⾯的webProject 这个名称,然后使⽤eclipse发布到tomcat webapps⽬录下之后,多出来的还是test,然后通过http://localhost:8080/test 可以访问,同时http://localhost:8080/webProject ⼀样可以访问。
这样的话就实现了⼀个项⽬发布两个访问地址的功能了。
Content directory :表⽰整个web项⽬的内容⽬录,eclipse默认是WebContent,myeclipse 默认是WebRoot。
Nginx模块开发文档

nginx文档吴东April 28, 2009Contents1前言52基本配置72.1安装 (7)2.2配置说明 (10)2.3启动和控制 (25)3深入源码273.1源码结构 (27)3.2configure配置 (27)3.3nginx源码习惯 (27)3.4常用基础库 (28)3.5core模块 (40)3.6event模块 (44)3.7http模块 (46)4模块编写554.1http模块编写 (55)4.2基于nginx的高性能服务器开发. . . . . . . . . 555附录575.1编译器参数 (57)5.2系统函数 (59)CONTENTS CONTENTSChapter 1前言在互联网编程中,http服务器编程作为一个非常重要方向一直为各种语言所重视,从c语言的apache,Lighttpd到当前非常流行的nginx。
Java有tom-cat,jetty,websphere等众多服务器,pyhoen的zope等服务器。
既有重量级的服务器,又有轻量级的,嵌入式的服务器。
从互联网的应用来说,c语言的http 服务器一直占有主导地位,当前最流行的三个开源服务器有apache,Lighttpd和nginx。
Apache作为经典的Web服务器,除了慢没有别的缺点了,Apache2对fcgi支持并不好,非常好用的proxy和proxy_ajp (很多人用它作为tomcat的前端),不支持epoll(这年头,epoll几乎是性能的必备)。
Lighttpd作为杀手级的静态文件能力,杀手级的fcgi能力但是proxy模块不够稳定。
Nginx速度快,占用资源少,杀手级的proxy和rewrite,非常不错的静态文件能力,最适合作为整个网站的前端服务(将php、svn等不同请求发送往后端apache)。
现在国内Nginx的用户越来越多了,多数拥抱Nginx的网站都钟意其优异的性能表现,如果是相对比较大的网站,节约下来的服务器成本无疑是客观的。
Eclipse Debug 调试

Eclipse Debug 调试
Eclipse Debug 调试
debug的详细步骤如下:
第一步:打开java代码文件,在左侧双击鼠标设置断点,或者在左侧右键点击Toggle Breakpoint。
第二步:点击eclipse上方的“蜘蛛”按钮,点击debug as,debug调试开始。
第三步:显示debug图框。
debug模式的界面,分为5个区域。
1. Debug(调试)区域,显示当前正在调试代码是什么,在第多少行
2. Variables(变量)区域,显示变量的值。
3. 代码编辑区
4. 代码结构区,显示代码中的各个方法。
5. Console(控制台)区域。
Eclipse Debug 调试
第四步:点击黄色按钮,或者按F5后退一步,F6前进一步,可以在变量区实时查看值的变化。
第五步:点击调试区的绿色按钮,可以将程序直接执行完毕,跳过所有断点调试。
注意事项:F5和F6都是单步调试,F5是step into,也就是进入本行代码中执行,F6是step over,也就是执行本行代码,跳到下一行。
F7是跳出函数,F8是执行到最后。
nginx 编译 参数

nginx 编译参数引言概述:Nginx是一个高性能的Web服务器和反向代理服务器,具有轻量级、高并发和低内存占用的特点。
为了满足不同的需求,Nginx提供了丰富的编译参数,可以根据实际情况进行定制化编译。
本文将介绍Nginx的编译参数,以帮助读者更好地理解和使用Nginx。
正文内容:1. 编译参数的作用1.1 提高性能:通过启用特定的模块和功能,可以提高Nginx的性能。
1.2 定制化功能:根据实际需求,可以选择性地编译和启用特定的功能模块。
1.3 减少内存占用:通过选择性编译,可以减少Nginx的内存占用。
2. 常用的编译参数2.1 --prefix:指定Nginx的安装目录。
2.2 --with-http_ssl_module:启用HTTPS支持。
2.3 --with-http_v2_module:启用HTTP/2支持。
2.4 --with-http_gzip_static_module:启用静态Gzip压缩。
2.5 --with-debug:启用调试模式,方便排查问题。
3. 编译参数的配置方式3.1 命令行配置:在编译Nginx时,可以通过命令行参数来配置编译参数。
3.2 配置文件配置:也可以通过编写配置文件来配置编译参数,然后在编译时引用该配置文件。
4. 编译参数的注意事项4.1 选择适合的模块:根据实际需求选择合适的模块,避免不必要的性能损耗。
4.2 版本兼容性:注意编译参数与Nginx版本的兼容性,避免出现不兼容的情况。
4.3 安全性考虑:启用某些功能时,需要考虑安全性问题,避免出现安全漏洞。
5. 编译参数的实际应用5.1 Web服务器配置:根据实际需求选择合适的编译参数,配置Nginx作为Web服务器。
5.2 反向代理配置:通过编译参数配置Nginx作为反向代理服务器,实现负载均衡和高可用性。
5.3 静态文件服务配置:通过启用静态Gzip压缩和HTTP/2支持,提供高效的静态文件服务。
Android-软件开发之如何使用Eclipse-Debug调试程序详解(十二)

DEBUG 使用教程 查错 排错 debug 模式 大全

1.项目报错,即eclipse里面项目工程有红叉eclipse中打开Problems视图,window->show view->other->General->Problems通过Problems视图中的错误信息,找到错误源(有可能是java文件,或者(xml,有可能是 1.xml有错;2.含有错误字符(比如从word复制过来);3.假报)buildpath -> eclipse中工程,右键->Build Path-> Configure Build path -> Libraries选项卡察看JRE System Library(引入jdk自带包0),Server Runtime(引入jsp/servlet实现包,比如Apache Tomcat V6.0(这个是window->preferences->server下定义的Runtime Environment对应))Web App Libraries(包含了eclipse中项目工程自带的WEB-INF/lib 下引入的jar包)junit(调试用,不一定需要)User Library(一般eclipse使用者把自己引入的jar包放在一起,定义一个library,在eclipse中引用)2.项目启动,控制台报错察看控制台错误信息可能错误信息包括:1.session factory(可能是hibernate的实体类定义错误), 控制台一般看到dao,sessionFactory,hibernate的关键字eg.Caused by: org.hibernate.PropertyNotFoundException: Could not find a getter for name1 in class demo.ssh2.model.Roleatorg.hibernate.property.BasicPropertyAccessor.createGetter(BasicProperty Accessor.java:306)atorg.hibernate.property.BasicPropertyAccessor.getGetter(BasicPropertyAc cessor.java:299)atorg.hibernate.mapping.Property.getGetter(Property.java:294)atorg.hibernate.tuple.entity.PojoEntityTuplizer.buildPropertyGetter(PojoEnt ityTuplizer.java:300)atorg.hibernate.tuple.entity.AbstractEntityTuplizer.<init>(AbstractEntityTu plizer.java:141)atorg.hibernate.tuple.entity.PojoEntityTuplizer.<init>(PojoEntityTuplizer.ja va:78)... 55 more2.bean定义错误,dao,service,action,1.<property name="" ref=""/>中的ref找不到对应的bean的id从sessionfactory->dao->service->action,前面的错误总能导致出后面的错误eg.比如定义了如下spring配置信息<bean id="sessionFactory" ..../><bean id="baseDao" abstract="true" class="demo.ssh2.dao.BaseHibernateDao"><property name="sessionFactory" ref="sessionFactory1" /></bean>控制台报错org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao' defined in file...(备注:此处省略多少字)Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'sessionFactory1' is definedatorg.springframework.beans.factory.support.DefaultListableBeanFactory.g etBeanDefinition(DefaultListableBeanFactory.java:527)atorg.springframework.beans.factory.support.AbstractBeanFactory.getMerg edLocalBeanDefinition(AbstractBeanFactory.java:1083)atorg.springframework.beans.factory.support.AbstractBeanFactory.doGetB ean(AbstractBeanFactory.java:274)atorg.springframework.beans.factory.support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:190)atorg.springframework.beans.factory.support.BeanDefinitionValueResolver .resolveReference(BeanDefinitionValueResolver.java:322)... 30 more2.setter方法名和spring配置文件中的<property name="" ref=""/>中的name 不匹配eg.比如定义如下:<bean id="roleService" class="demo.ssh2.service.RoleService"><property name="roleDao" ref="roleDao"/></bean>RoleService中roleDao的setter方法如下public void setRoleDao1(RoleDao roleDao) {this.roleDao = roleDao;}方法setRoleDao1和<property name="roleDao" 不匹配控制台报错:Caused by: org.springframework.beans.NotWritablePropertyException:Invalid property 'roleDao' of bean class[demo.ssh2.service.RoleService]:Bean property 'roleDao' is not writable or has an invalid setter method.Did you mean 'roleDao1'?atorg.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWr apperImpl.java:1024)atorg.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWr apperImpl.java:900)atorg.springframework.beans.AbstractPropertyAccessor.setPropertyValues( AbstractPropertyAccessor.java:76)atorg.springframework.beans.AbstractPropertyAccessor.setPropertyValues( AbstractPropertyAccessor.java:58)atorg.springframework.beans.factory.support.AbstractAutowireCapableBea nFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.jav a:1358)... 28 more3.缺少setter方法比如配置<bean id="roleService" class="demo.ssh2.service.RoleService"><property name="roleDao" ref="roleDao"/></bean>在类RoleService中没有定义roleDao的setter方法控制台报错:Caused by: org.springframework.beans.NotWritablePropertyException:Invalid property 'roleDao' of bean class [demo.ssh2.service.RoleService]:Bean property 'roleDao' is not writable or has an invalid setter method.Does the parameter type of the setter match the return type of the getter?atorg.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWr apperImpl.java:1024)atorg.springframework.beans.BeanWrapperImpl.setPropertyValue(BeanWr apperImpl.java:900)atorg.springframework.beans.AbstractPropertyAccessor.setPropertyValues( AbstractPropertyAccessor.java:76)atorg.springframework.beans.AbstractPropertyAccessor.setPropertyValues( AbstractPropertyAccessor.java:58)atorg.springframework.beans.factory.support.AbstractAutowireCapableBea nFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.jav a:1358)... 28 more3.eclipse缓存问题,更改了文件,部署到web server中的文件仍然旧的servers视图中,先停止server,然后删除servereclipse中点击项目工程,Project->clean->最上面选中Clean Projects selected below->点击ok3.项目运行,控制台报错察看控制台错误信息可能错误信息包括:1.jdbc配置错误(数据库url,用户名,密码)比如jdbc配置文件错误,将ername=root修改为ername=root1页面报错如下:org.springframework.transaction.CannotCreateTransactionException: Could not open Hibernate Session for transaction; nested exception is org.hibernate.exception.GenericJDBCException: Cannot open connection 控制台报错如下:2013-11-20 09:39:25,441 [org.hibernate.util.JDBCExceptionReporter]-[ERROR] Cannot create PoolableConnectionFactory (Access denied for user 'root1'@'localhost' (using password: YES))2.页面访问不到404或页面有异常信息根据访问的url里面的action,找到Action类对应的方法,打个断点(打在方法体内的代码块的第一行)如果不能进入debug视图,表示struts.xml配置文件有问题,页面输入url中的action找不到对应的Action类eg.比如将strus.xml配置名为<action name="role/list",页面访问role/list1.acito页面报错:ng.NoSuchMethodException:demo.ssh2.action.RoleAction.list1()ng.Class.getMethod(Class.java:1605)如果能进入debug视图,表示struts.xml配置文件没有问题,1.一般控制台会有异常栈错误信息eg.比如RoleAction有如下方法public String list(){List<?> list = roleService.getList();ActionContext.getContext().put("roles", list);return "list";}RoleService中getList方法如下public List<?> getList(){throw new RuntimeException();}页面报错:ng.RuntimeExceptiondemo.ssh2.service.RoleService.getList(RoleService.java:13)2.struts2标签或jstl标签使用错误3.页面不能显示出数据,1.action中私有实体类属性没有gettter/setter方法,或者没有使用request.setAttribute,或者使用ActionContext.getContext().put,传值2.struts2标签或jstl标签使用不对,但页面不报错。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Liunx下使用Eclipse 开发nginx module,进行单步调试
Author: chuantong.huang@
Date:2010-10-26
1)取Nginx最新代码:
wget /download/nginx-0.7.67.tar.gz
tar -xvf nginx-0.7.67.tar.gz
cd nginx-0.7.67
2)建立模块目录与代码
pwd # 进入Nginx源代码目录,如:
/home/toon/workspace/nginx-0.7.67
mkdir ngx_module_echo
vim ngx_module_echo/config
其内容为:
ngx_addon_name=ngx_module_echo
HTTP_MODULES="$HTTP_MODULES ngx_module_echo"
NGX_ADDON_SRCS="$NGX_ADDON_SRCS $ngx_addon_dir/ngx_module_echo.c"
CORE_LIBS="$CORE_LIBS "
vim ngx_module_echo/ngx_module_echo.c
其内容:
参考nginx的echo模块代码,自己google下,或参考以下:
/p/ngx_ext.html
3)建立Makefile
利用nginx提供的configrue脚本生成Makefile文件:
./configure --without-http_rewrite_module --without-http-cache --add-module=/home/toon/workspace/nginx-0.7.67/ngx_module_echo/ --with-debug 注意:这里要指定moduel目录(与Nginx源码目录下),还要指定debug编译. BTW:Eclipse 中执行Build project时会执行make clean all,会删除Makefile,故此时应该再执行configure生成Makefile
可以先make一次,编译出objs/nginx文件。
4)在Eclipse中建工程
A)选择->新建->Standard Make C++ Project
目录选定为解压出来的源码目录,可看到ngx_module_echo目录:
B)修改build选项:
主要是把Build与Rebuild中的命名删除
C)配置运行项参数,打开Run configurations 对话框:
C/C++ Application中选择objs/nginx(如果没有,先make一次)Argruments中填:-c /home/toon/workspace/nginx-0.7.67/conf/nginx.conf 指定运行时配置文件,下面还要修改此配置文件。
D)修改上一步指定的nginx.conf文件(以下为非完整文件):worker_processes 1;
master_process off;
daemon off;#必需设置daemon为off
http {
server {
listen 8000; # 80端口要sudo权限,这里改用8000
server_name localhost;
location = /echo {#这里就是要写的module使用的配置
echo 'test holle!\n';
}
}
}
5)就可以在Eclipse中debug你的module了。
curl http://127.0.0.1:8000/echo
然后在Eclipse中对ngx_module_echo/ngx_module_echo.c文件设置断点:
喜欢直接使用gdb的可以使用命令行进行调试,此等高人,也不用看本文了.
gdb --cd=/home/toon/workspace/nginx-0.7.67 --command=.gdbinit -q -nw -tty /dev/pts/4 -i mi1 /home/toon/workspace/nginx-0.7.67/objs/nginx -c
/home/toon/workspace/nginx-0.7.67/conf/nginx.conf。