发表于: 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个多小时才好。。。。



返回列表 返回列表
评论

    分享到