概述
目录
java.lang.NoSuchMethodError: org.springframework.util.Assert.isTrue(ZLj
References to interface static methods are allowed only at source level 1.8
org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
TransactionManager:org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'org.springframework.transaction.PlatformTransactionManager' available: expected single matching bean but found 2:
DB2 SQL Error: SQLCODE=-668, SQLSTATE=57016错误解决方法
org.springframework.jdbc.datasource.DataSourceTransactionManager getTransaction 警告: Custom isolation level specified but no actual transaction initiated; isolation level will effectively be ignored:PROPAGATION_SUPPORTS,ISOLATION_READ_UNCOMMITTED,readOnly; ''
org.springframework.web.servlet.PageNotFound noHandlerFound
java.lang.IllegalArgumentException: protocol = http host = null
db2 Error Code: -20054, SQL State: 55019 或 状态码 57016
java.lang.ClassCastException: com.sun.proxy.$Proxy10 cannot be cast to com.bestcxx.stu.tem.aspect.serviceimpl.TemServiceImpl
·BeanCurrentlyInCreationException-循环注入问题
·java.lang.IllegalArgumentException: Sheet index (0) is out of range (0..-1)
·Feature 'http://javax.xml.XMLConstants/feature/secure-processing' is not recognized. at
·Could not load driverClass driverClass=com.ibm.db2.jcc.DB2Driver
·cvc-complex-type.2.4
·Configuration problem: Only one AsyncAnnotationBeanPostProcessor may exist within the context.
·java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
·Connection readOnly mode is not enforcable after the connect
·sun.io.ByteToCharConverter at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
·IDEA:Error:java:无效的目标发行版:1.8
· java.lang.SecurityException: Prohibited package name: java.java
·java.lang.NoClassDefFoundError: ch/qos/logback/core/joran/spi/JoranException
·Caused by: java.lang.ClassNotFoundException: ch.qos.logback.core.joran.spi.JoranException
·在 BigDecimal 转换期间发生了异常。有关详细信息,请参阅相连接的 Throwable。 ERRORCODE=-4220, SQLSTATE=null
·SLF4J: Class path contains multiple SLF4J bindings
·閿欒: 缂栫爜UTF-8鐨勪笉鍙槧灏勫瓧绗? maven install 出现乱码
·java.net.SocketException: 打开的文件过多
·redis+tomcat8.5+jdk1.8 共享session 报错
·由于该网站的robots.txt文件存在限制指令(限制搜索引擎抓取),系统无法提供该页面
·定时任务多线程内存溢出
·System.getProperty("java.io.tmpdir") Docker 容器环境获取不到
Gson引发的StackOverflowError错误
解决思路是去掉相互依赖——虽然Spring允许相互依赖,但是Gson不支持,定位的办法是 debug,在 Gson 报错的代码那块看看是那个对象。
一劳永逸的方法是——打印日志别用 this,而是具体对象,而是对象非必要属性使用 transiant.
最后,对象之间不要直接引用,使用Po,Dto做转化
at com.google.gson.stream.JsonWriter.string(JsonWriter.java:566)
at com.google.gson.stream.JsonWriter.writeDeferredName(JsonWriter.java:402)
javax.servlet.ServletException: Not running on Jetty, JSR-356 support unavailable
引入的 jar 包额外包含 spring-boot-starter-jetty,服务器不支持,使用 deploy tree 排查即可
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-jetty</artifactId>
</dependency>
java.lang.NoSuchMethodError: org.springframework.util.Assert.isTrue(ZLj
Factory method 'getJedisConnectionFactory' threw ex
ception; nested exception is java.lang.NoSuchMethodError: org.springframework.util.Assert.isTrue(ZLj
ava/util/function/Supplier;)V
在使用 spring-redis-date 的2.0 版本中报错了,最后(查询官网信息)发现是由于
Spring Data Redis 2.x (SDR 2.0) 需要 jdk1.8及以上,Spring Frameworks 5.2.1.RELEASE 及以上,需要 Redis 2.6.x 及以上
而我本地 Spring 版本为 4.3,升级后这个问题解决了
References to interface static methods are allowed only at source level 1.8
org.springframework.web.HttpMediaTypeNotAcceptableException: Could not find acceptable representation
//RESTFul Response Content Type="application/json;charset=UTF-8;"
@PostMapping(value = "/fileconfigquery",produces="application/json;charset=UTF-8;")
//页面,展示中文 Response Content Type="text/html;charset=UTF-8;"
@PostMapping(value = "/fileconfigquery",produces = "text/html;charset=UTF-8;")
//默认的,会自动适用 /*
@PostMapping(value = "/fileconfigquery")
TransactionManager:org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'org.springframework.transaction.PlatformTransactionManager' available: expected single matching bean but found 2:
存在两个 transaction 配置,可以指定一个
@Transactional(value="transactionManagerName")
DB2 SQL Error: SQLCODE=-668, SQLSTATE=57016错误解决方法
DB2 SQL Error: SQLCODE=-668, SQLSTATE=57016错误解决方法
正常来说,直接执行 “reorg table 表名”即可,如果报错你可以执行下面这句
call SYSPROC.ADMIN_CMD('reorg table ydt_pos_deploy_record')
```
load query table 表名
load from /dev/null of del terminate into 表名
reorg table 表名
```
org.springframework.jdbc.datasource.DataSourceTransactionManager getTransaction 警告: Custom isolation level specified but no actual transaction initiated; isolation level will effectively be ignored:PROPAGATION_SUPPORTS,ISOLATION_READ_UNCOMMITTED,readOnly; ''
简单解决方案就是,不要在类上添加 复杂的 @Transactional 配置,简化为 @Transactional(readOnly=true)
具体事务添加在 public 修饰的方法上
org.springframework.web.servlet.PageNotFound noHandlerFound
SpringMVC 报错,项目启动没问题,在访问时会报404,需要注意的是,DispatcherServlet 会加载 servlet.xml 相关的配置文件,该文件可以是一个,也可以是多个,当然Spring 其他的配置文件也可以,但是必须包含的内容是 SpringMVC 相关的和Controller的bean.
<servlet>
<servlet-name>testservlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springMVC-servlet.xml</param-value>
</init-param>
</servlet>
servlet.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:util="http://www.springframework.org/schema/util"
xmlns:orm="http://www.springframework.org/schema/orm"
xmlns:mvc="http://www.springframework.org/schema/mvc"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util-4.3.xsd
http://www.springframework.org/schema/orm http://www.springframework.org/schema/orm/spring-orm-4.3.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd
">
<!-- 配置注解驱动 -->
<mvc:annotation-driven/>
<!-- 定义默认访问 -->
<mvc:view-controller path="/" view-name="forward:home"/>
<!-- 处理静态资源 -->
<mvc:resources location="/WEB-INF/css/" mapping="/css/**" />
<mvc:resources location="/WEB-INF/js/" mapping="/js/**" />
<!-- 配置视图解析器 -->
<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>
<property name="contentType" value="text/html"/>
<property name="prefix" value="/WEB-INF/views/"/>
<property name="suffix" value=".jsp"/>
</bean>
<!-- Controller 的类扫描一定和本文件一起被 DispatcherServlet 加载,否则404 -->
<context:component-scan base-package="study"/>
</beans>
java.lang.IllegalArgumentException: protocol = http host = null
http:// 或者 https:// 的书写不规范导致系统无法识别 url,
我这里是写成了 http:/www.***.com 所以报错
db2 Error Code: -20054, SQL State: 55019 或 状态码 57016
表加字段后,删除字段,但是没有删掉。再次删除的报错如上。出错原因锁表,解锁即可。
CALL SYSPROC.ADMIN_CMD('reorg table 表名');
命令行中执行:REORG TABLE tablename
非命令行中执行:CALL SYSPROC.ADMIN_CMD('REORG TABLE tablename')
然后从新运行删除列命令 alter table DEMO_TABLE drop column DEMO_COLUMN;
java.lang.ClassCastException: com.sun.proxy.$Proxy10 cannot be cast to com.bestcxx.stu.tem.aspect.serviceimpl.TemServiceImpl
at com.bestcxx.stu.tem.aspect.AspectTest.testSayHello(AspectTest.java:62)
原因是系统使用了AOP,但是使用的是 JDK 动态代理模式,但是在声明bean时使用了子类声明,导致Spring 无法完成注入
即 接口A是切点,子类B实现接口A,在调用时 private 子类B,此时子类B无法被动态代理注入
因为JDK动态代理只能为接口代理
这个时候可以启动cglib动态代理,即<aop:aspectj-autoproxy/> 换为 <aop:aspectj-autoproxy proxy-target-class="true"/> 即可
·BeanCurrentlyInCreationException-循环注入问题
org.springframework.beans.factory.BeanCurrentlyInCreationException: Error creating bean with name 'operateLogServiceImpl': Bean with name 'operateLogServiceImpl' has been injected into other beans [serviceLoggerInterceptor] in its raw version as part of a circular reference, but has eventually been wrapped. This means that said other beans do not use the final version of the bean. This is often the result of over-eager type matching - consider using 'getBeanNamesOfType' with the 'allowEagerInit' flag turned off, for example.
使用 @Autowired 可以彻底避免循环注入问题,当然,必须是单例的
·java.lang.IllegalArgumentException: Sheet index (0) is out of range (0..-1)
重构公司代码发现Excel对账没有生成,进过调查发现是代码中写Excel 时使用了XSSFWorkbook ,在声明对象时需要把模版作为参数串进去
报错信息:
java.lang.IllegalArgumentException: Sheet index (0) is out of range (0..-1)
代码修改的方法:
//错误写法
XSSFWorkbook cloudWorkbook = new XSSFWorkbook();
//正确写法
XSSFWorkbook cloudWorkbook = new XSSFWorkbook(getInputStream());//获取对账文件模版文件
public InputStream getInputStream(){
return DemoClass.class.getClassLoader().getResourceAsStream("template/moban_template.xlsx");
}
·Feature 'http://javax.xml.XMLConstants/feature/secure-processing' is not recognized. at
com.sun.xml.internal.bind.v2.util.XmlFactory createParserFactory SEVERE: null org.xml.sax.SAXNotRecognizedException: Feature 'http://javax.xml.XMLConstants/feature/secure-processing' is not recognized. at org.apache.xerces.parsers.AbstractSAXParser.setFeature(Unknown Source)
传递依赖导致jar包冲突了,排除xml-apis、xerces,查看依赖树,直接去除jaxen:jaxen的依赖
+- jaxen:jaxen:jar:1.1.3:compile
[INFO] | | | +- jdom:jdom:jar:1.0:compile
[INFO] | | | +- xml-apis:xml-apis:jar:1.4.01:compile
[INFO] | | | +- xerces:xercesImpl:jar:2.6.2:compile
[INFO] | | | - xom:xom:jar:1.0:compile
<exclusion>
<groupId>jaxen</groupId>
<artifactId>jaxen</artifactId>
</exclusion>
·Could not load driverClass driverClass=com.ibm.db2.jcc.DB2Driver
不是找不到驱动,而是驱动的名字写错了,驱动应该写为 “com.ibm.db2.jcc.DB2Driver” 而不是“driverClass=com.ibm.db2.jcc.DB2Driver”
完整报错,驱动配置中,
Could not load driverClass driverClass=com.ibm.db2.jcc.DB2Driver
java.lang.ClassNotFoundException: driverClass=com.ibm.db2.jcc.DB2Driver
·cvc-complex-type.2.4
引入的xsd 文件版本过低,原本引入的是3.0,Spring版本为3.2.9.RELEASE,修改为 3.2解决问题
http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
完整报错:
nested exception is org.xml.sax.SAXParseException; lineNumber: 21; columnNumber: 60; cvc-complex-type.2.4.c: The matching wildcard is strict, but no declaration can be found for element 'mvc:resources'.
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.doLoadBeanDefinitions(XmlBeanDefinitionReader.java:396) ~[spring-beans-3.2.9.RELEASE.jar:3.2.9.RELEASE]
当然,如果这个问题还没有被解决,那么就可能是其他的原因,比如,你的项目悄悄引用了一个和Spring同package的类,这个时候表象就是你本地项目正常启动,容器环境项目无法正常启动,因为你本地仓库包是稳定版本,没有更新,而容器环境启动后就更新了,导致项目启动直接使用了外部包,而这一切都悄无声息的。
·Configuration problem: Only one AsyncAnnotationBeanPostProcessor may exist within the context.
<task:annotation-driven/> 定义重复了,查看你项目或者引用的jar包是不是重复声明了这个字段
将<task:annotation-driven/> 注释掉即可
·java.lang.NoClassDefFoundError: org/hamcrest/SelfDescribing
缺少 junit 依赖
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.12</version>
<scope>test</scope>
</dependency>
·Connection readOnly mode is not enforcable after the connect
有些数据库驱动不支持单独对事务设置 readOnly,去除后就可以消除这个提示,但是建议保留,有一些警告其实没有问题
db2 不支持 在事务中设置 readOnly
http://www.coin163.com/it/x5803523372907625631/connection-readonly-mode-is-not-enforcable-after-the-connect
·sun.io.ByteToCharConverter at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
jdk 1.8 没有这个方法了,需要使用低版本的jdk
·IDEA:Error:java:无效的目标发行版:1.8
需要将idea 中工程、编译等jdk配置版本统一为 jdk 1.8
项目 jdk 配置
jdk 编译
· java.lang.SecurityException: Prohibited package name: java.java
不可以使用 java 作为报名,否则会报错
·Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (1). Last acquisition attempt exception:com.ibm.db2.jcc.am.SqlInvalidAuthorizationSpecException: [jcc][t4][2013][11249][4.11.77] Connection authorization failure occurred. Reason: User ID or Password invalid. ERRORCODE=-4214, SQLSTATE=28000 at com.ibm.db2.jcc.am.gd.a
db2 数据库连接,说白了就是数据库连接错误,然后原因是用户名或者密码错误 更多报错 新浪博客
·java.lang.NoClassDefFoundError: ch/qos/logback/core/joran/spi/JoranException
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-access</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.3</version>
<exclusions>
<exclusion>
<artifactId>slf4j-api</artifactId>
<groupId>org.slf4j</groupId>
</exclusion>
</exclusions>
<scope>provided</scope>
</dependency>
·Caused by: java.lang.ClassNotFoundException: ch.qos.logback.core.joran.spi.JoranException
增加下面的依赖
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-core</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-access</artifactId>
<version>1.1.3</version>
</dependency>
<dependency>
<groupId>ch.qos.logback</groupId>
<artifactId>logback-classic</artifactId>
<version>1.1.3</version>
</dependency>
·在 BigDecimal 转换期间发生了异常。有关详细信息,请参阅相连接的 Throwable。 ERRORCODE=-4220, SQLSTATE=null
原因是两个表使用Decimal 数据,但是精度不一致
·SLF4J: Class path contains multiple SLF4J bindings
···/repository/org/apache/logging/log4j/log4j-slf4j-impl/2.3/log4j-slf4j-impl-2.3.jar!/org/slf4j/impl/StaticLoggerBinder.class
···/repository/org/slf4j/slf4j-log4j12/1.6.1/slf4j-log4j12-1.6.1.jar!/org/slf4j/impl/StaticLoggerBinder.class
需要两个命令,一个是看项目依赖关系
dependency:tree
一个是将多余的依赖剔除
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
参考了:https://jingyan.baidu.com/article/ea24bc39e9b8afda63b33149.html
·閿欒: 缂栫爜UTF-8鐨勪笉鍙槧灏勫瓧绗? maven install 出现乱码
这个问题的成因比较复杂,当GBK 和 UTF8 格式当代码掺杂在一起当时候,尤其是经历了整体字符格式转化之后,就很一个一个文件处理了。这个报错当意思是 代码中有UTF-8 格式当编码,其实就是注释,影响了编译。这个项目本身是 GBK 的,然后整体改成过UTF-8 ,后来又改回来了。
整体报错如下
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.3.2:compile (default-compile) on project pos-bosscommon: Compilation failure: Compilation failure:
[ERROR] ***.java:[11,4] 閿欒: 缂栫爜UTF-8鐨勪笉鍙槧灏勫瓧绗?
[ERROR] ***.java:[11,5] 閿欒: 缂栫爜UTF-8鐨勪笉鍙槧灏勫瓧绗?
在 idea 中处理这个问题,报错既然是和字符格式有关,就针对字符格式来采取应对措施,具体操作分为两步
第一步是idea 修改字符编码格式
IDEA下的 Editor->File Encodings
第二步和 maven 的配置有关,
报错信息和 maven-compiler-plugin 有关,这个插件是编译用的,正好可以设置编码格式,我项目是 GBK ,配置一下就可以了
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<encoding>gbk</encoding>
·java.net.SocketException: 打开的文件过多
报此错误是由于系统内核对进程打开文件个数的限制,默认为1024
查看值,默认是1024:ulimit -n (ulimit -a)
打开 /etc/security/limits.conf
* 是所有用户
* soft nofile 65535
* hard nofile 65535
然后重新登陆
ulimit -n
解决思路有两个:1、增加这个限制值,2、检查代码中是否有未关闭的连接3、如果使用了db2数据需要升级驱动版本(IC82875: APPLICATION CRASH DUE TO JAVA ERROR 'IOEXCEPTION: TOO MANY OPEN FILES' IF ENABLESYSPLEXWLB=TRUE)
详情参考:https://blog.csdn.net/roy_70/article/details/78423880
http://jsx112.iteye.com/blog/935509
http://zxs19861202.iteye.com/blog/423174
http://www.bkjia.com/ASPjc/983685.html
·redis+tomcat8.5+jdk1.8 共享session 报错
参照教程 http://blog.csdn.net/jerome_s/article/details/52658946
报错:
Caused by: java.lang.ClassNotFoundException: org.apache.catalina.util.LifecycleSupport
at java.net.URLClassLoader$1.run(URLClassLoader.java:372)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:360)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 38 more
报错原因:教程指定版本为tomcat8,而我使用的tomcat是8.5,在8.5自带的jar包 catalina.jar中已经不包含这个LifecycleSupport类了,而且通过额外增加低版本tomcat-catalina.jar并没有解决问题。所以根源是找到针对tomcat8.5的方法。
源码比对:
tomcat7:http://tomcat.apache.org/tomcat-7.0-doc/api/org/apache/catalina/util/LifecycleSupport.html
tomcat8:http://tomcat.apache.org/tomcat-8.0-doc/api/org/apache/catalina/util/LifecycleSupport.html
tomcat8.5 中没有这个方法了。。。
·由于该网站的robots.txt文件存在限制指令(限制搜索引擎抓取),系统无法提供该页面
人为规定的,爬虫会爬,但是不会显示网页内部内容
·负载均衡内网无法跨越外网
内网A通过外网访问内网B,再通过外网回调内网A会出现问题
解决办法:需要做会话保持
第一次遇到的解决方法:内网访问的话就不要出外网了。
第二次遇到的解决方法:使用会话保持,因为是在Docker环境,结合了Nginx,在网上查到 Nginx有一个设置 可以在upstream里设置 ip_hash
参考链接为:http://blog.csdn.net/u012562943/article/details/53634262
·定时任务多线程内存溢出
多线程不能瞬间开启过多线程,否则有可能造成线程溢出,所以使用自定义线程池。
·System.getProperty("java.io.tmpdir") Docker 容器环境获取不到
这个是Java 语言中获取操作系统临时文件目录,对于 Docker 容器环境需要单独配置
System.getproperty(“java.io.tmpdir”)是获取操作系统缓存的临时目录,不同操作系统的缓存临时目录不一样,
在Windows的缓存目录为:C:Users登录用户~1AppDataLocalTemp
Linux:/tmp
更多内容
java.version
Java运行时环境版本
java.vendor
Java运行时环境供应商
java.vendor.url
Java供应商的 URL
java.home
Java安装目录
java.vm.specification.version
Java虚拟机规范版本
java.vm.specification.vendor
Java虚拟机规范供应商
java.vm.specification.name
Java虚拟机规范名称
java.vm.version
Java虚拟机实现版本
java.vm.vendor
Java虚拟机实现供应商
java.vm.name
Java虚拟机实现名称
java.specification.version
Java运行时环境规范版本
java.specification.vendor
Java运行时环境规范供应商
java.specification.name
Java运行时环境规范名称
java.class.version
Java类格式版本号
java.class.path
Java类路径
java.library.path
加载库时搜索的路径列表
java.io.tmpdir
默认的临时文件路径
java.compiler
要使用的 JIT 编译器的名称
java.ext.dirs
一个或多个扩展目录的路径
os.name
操作系统的名称
os.arch
操作系统的架构
os.version
操作系统的版本
file.separator
文件分隔符(在 UNIX 系统中是“/”)
path.separator
路径分隔符(在 UNIX 系统中是“:”)
line.separator
行分隔符(在 UNIX 系统中是“/n”)
user.name
用户的账户名称
user.home
用户的主目录
user.dir
用户的当前工作目录
最后
以上就是饱满黄蜂为你收集整理的遇到的经典问题+不断积累Gson引发的StackOverflowError错误 javax.servlet.ServletException: Not running on Jetty, JSR-356 support unavailable的全部内容,希望文章能够帮你解决遇到的经典问题+不断积累Gson引发的StackOverflowError错误 javax.servlet.ServletException: Not running on Jetty, JSR-356 support unavailable所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复