Eclipse + nginx module + debug

合集下载

eclipse调试(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常见错误及解决方法

纽斯达科技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的一些基本操作

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模块开发文档

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 调试
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 编译参数引言概述: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调试程序详解(十二)

Android-软件开发之如何使用Eclipse-Debug调试程序详解(十二)
Android 软件开发之如何使用Eclipse Debug调试程序详解(十二)Android 软件开发之如何使用Eclipse Debug调试程序详解(ipse Debug调试详解雨松MOMO原创文章如转载,请注明:转载至我的独立域名博客雨松MOMO程序研究院,原文地址:/archives/1001.在程序中添加一个断点如果所示:在Eclipse中添加了一个程序断点在Eclipse中一共有三种添加断点的方法第一种: 在红框区域右键出现菜单后点击第一项 Toggle Breakpoint 将会在你右键代码的哪一行添加一个程序断点 (同样的操作方可取消程序断点)第二种: 在红框区域双击鼠标左键将会在你双击代码的哪一行添加一个程序断点 (同样的操作方可取消程序断点)第三种 :在光标停留的地方使用快捷键 Ctrl + Shift + B 将会在光标停留的这一行添加一个程序断点 (同样的操作方可取消程序断点)2.运行Debug 调试 让程序停留在添加的断点上如下图所示,在红框内点击下拉菜单选中需要调试的项目 则开始运行Debug调试如果不在下拉表中选直接点击表示Debug运行默认项目(默认项目为上一次运行的项目)Debug调试 快捷键为单击F11 分析一下如何科学的添加程序断点, 上图中我为了加断点查看生成出来随机数的值我一共添加了6个程序断点,绿框表示最为科学的断点位置 ,红框表示不科学的位置。 我们分析一下为什么, 如果switch case 中的代码片段过长 或者 case 的数量过多 如果采用红框的方式来添加程序断点,程序员须要添加很多程序断点万一有疏漏 所以会很难快速定位代码执行到了那里 ,如果使用绿框的方式添加程序断点,程序员只须要在断点出按 F6 单步跳过这一行代码就会走进正确的case中方便继续调试。 Debug调试运行后,程序停在了红框处,按F6单步跳过 发现随机数为

DEBUG 使用教程 查错 排错 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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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。

相关文档
最新文档