发表于: 2016-09-12 21:39:35
2 2469
今天完成的事情:将两个页面实现之后,终于有空余时间自己学习了。
明天计划的事情:看看需求,然后总结下最近这些日报中那些需要深入学习的内容,了解下。
今天遇到的问题:
1.
java.lang.IllegalStateException: Illegal access: this web application instance has been
stopped already.
非法访问:此Web应用程序实例已停止了。无法加载java.net.BindException。最终是由下面的堆栈
跟踪调试目的,以及试图终止线程从而导致非法访问
抛出一个错误造成的,并没有功能的影响。这个是在关闭应用服务器或重新部署装载项目失败会发生。
当应用程序卸载时,并不会关闭所有的线程。
当tomcat已经关闭了其类加载器后,一些线程依然会继续运行,这样就导致出错,这些错误就会被到
日志文件里。
解决方法是:修改tomcat目录下conf文件夹下的server.xml, 在<Host>标签添加子元素找到
<Context>标签,把reloadble的属性值设为:
reloadable="false"。
<Context>代表了运行在<Host>上的单个Web应用,一个<Host>可以有多个< Context>元素,
每个Web应用必须有唯一的URL路径,
这个URL路径在<Context>中的属性path中设定。
<Context path="/helloApp" docBase="helloApp" debug="0" reloadable="true"/>
<Context>元素的属性: path:指定访问该Web应用的URL入口。
docBase:指定Web应用的文件路径,可以给定绝对路径,也可以给定相对于<Host>的appBase属性
的相对路径,如果Web应用采用开放目录结构,
则指定Web应用的根目录,如果Web应用是个war文件,则指定war文件的路径。
reloadable:如果这个属性设为true,tomcat服务器在运行状态下会监视在WEB-INF/classes和
WEB-INF/lib目录下class文件的改动,如果监测到有class
文件被更新的,服务器会自动重新加载Web应用 ,也就是热部署。 有助于调试servlet和
其它的class文件,但这样用加重服务器运行负荷,建议在
Web应用的发存阶段将reloadable设为false。
这个问题我还是不太懂,最后解决的办法很笨,要不就是重启项目,要不就是clean然后重启,
再不然就是重新打开eclipse再启动项目,以前遇到
问题百度了解决就行了,但是现在遇到问题发现自己根本不知道为什么会报错,
心里的纠结感非常严重。。。。
2.
The web application [youxiao] appears to have started a thread named
[Replication Thread] but has failed to stop it.
This is very likely to create a memory leak. Stack trace of thread:
字面意思是可能发生内存泄漏?
通过1.的解决方法解决的。。。。。。
4.
org.springframework.beans.factory.BeanCreationException: Error creating
bean with name 'templetContext':
Injection of resource dependencies failed; nested exception is org.springframework.
beans.factory.BeanCreationException:
Error creating bean with name 'freemarker' defined in URL [file:/D:/bby/.metadata/.
plugins/org.eclipse.wst.server.
core/tmp0/wtpwebapps/jeecg/WEB-INF/classes/org/jeecgframework/web/cgform/common/
spring-mvc-cgform.xml]:
Initialization of bean failed; nested exception is org.springframework.beans.
FatalBeanException: Failed to
obtain BeanInfo for class [freemarker.template.Configuration]; nested
exception is java.beans.IntrospectionException:
type mismatch between read and write methods
本地启动jeecg报错,创建bean失败。。。
然后一直没有解决,思路是去spring-mvc-cgform.xml找问题吗
5.
使用json作为参数请求服务器的时候,发现参数不加双引号直接报400错误,
不知道通过什么方式能够不让400错误出现,然后换一个更友好的
app接受的结果展示出来。
6.
the prefix "mvc" for element "mvc:annotation-driven" is not bound.在配置文件中加入
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/mvc
http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd"
7.
Error creating bean with name 'mySwaggerConfig': Injection of autowired dependencies failed;
去掉在myswaggerConfig中的@autowired注释报别的错误了
Error creating bean with name 'defaultSwaggerController'
最后变成了
org.springframework.beans.factory.UnsatisfiedDependencyException:
Error creating bean with name 'mySwaggerConfig'
defined in file [D:\bby\.metadata\.plugins\org.eclipse.wst.server.core
\tmp0\wtpwebapps\bbyTest\WEB-INF\classes\com\
baibeiyun\youxiao\test\MySwaggerConfig.class]
看了下面的帖子
http://blog.csdn.net/chenmeng2192089/article/details/8688103
然而按照这个解决方式还是不行,最后我讲spring的扫描注释范围限制在dao,
就不报错了,这里要深入了解下
问题7可能使用如下办法可以解决,虽然我的问题没有解决
<!-- 注入swagger包 -->
<!-- start -->
<bean class="com.cqhealth.webservice.base.config.MySwaggerConfig"/>
<mvc:annotation-driven/>
<bean class="com.mangofactory.swagger.configuration.SpringSwaggerConfig" />
<!-- end -->
这里在springMvc.xml中配置了上面的内容,第一个内容是自己自定义的swaggerConfig.java所在的路径
第二句<mvc:annotation-driven/>相当于注册了DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter两个bean,配置一些messageconverter。即解决了@Controller注解的使用前提配置。
这里引用这个blog
http://blog.csdn.net/jbgtwang/article/details/7359592 这个blog也要好好看下
第三句是引入jar包中的一个类
8.
今天在使用swagger生成接口文档时,不知道怎么配置springmvc,导致别人可以访问
swagger的接口文档首页,我自己的项目只会报404错误,没找到资源
最后通过localhost:8080/项目名/wabapp下面的swagger存放路径/index.jsp访问到
了自己的接口文档首页,看来tomcat的内容要重新好好了解下了。
收获:
终于使用swagger ui制作了一个接口文档出来,看网上查找到的seagger与springmvc
的整合我遇到了上面的6、7、8这几个问题
http://blog.csdn.net/linlzk/article/details/50728264这个帖子说的内容还可以,
我导入的jar和它提到的5个一样,
定义的swaggerConfig也和它差不多,网上查到的都大同小异,我将下面的配置加入到applicationContext.xml中各种报错,
下面的bean节点和自定义的swaggerConfig都要放到springMvc.xml中
在springmvc的配置文件中加入以下配置
<bean class="com.mangofactory.swagger.configuration.SpringSwaggerConfig" />
剩下的和上面的帖子差不多,
如果出现上面第七个错误,就把applicationContext.xml中扫描注释的目录改成只扫描dao,
遇到使用localhost:8080/项目名/这样路径访问不了swagger首页的问题时,一定是springMvc路径配置错了,要在springMVC.xml加
//所有swagger目录的访问,直接访问location指定的目录 <mvc:resources mapping="/swagger/**" location="/WEB-INF/swagger/"/>
其实我现在才反应过来mapping可以随便配,location就是你自己防止swagger项目dist文件的位置,其实发布之后swagger在项目内,你随便放应该都可以访问到吧?最后一句还是挺心虚的,明天实验一下。剩下的就是swagger有很多种注释,
@ApiOperation 对方法作用的说明
@ApiParam参数说明
@ApiModel对象的说明
@ApiModelProperty 对象中属性的说明
上面这4个注释的总结是公司其他人总结的,我按照他们的方法还是折腾了大概3个多小时才好。。。。
评论