2016年工作中遇到的問題11-20
11.SpringMVC的PathVariable。
@PathVariable("id") Integer id;
@RequestParam Integer id;
使用了“路徑變數”,同時要求它不為空,就使用了
@RequestParam @PathVariable("id") Integer id;
訪問 /1001 ,結果提示id總是找不到。
使用了@PathVariable,不應該再同時使用@RequestParam。
12.阿里雲的OSS刪除圖片。
刪除之前,Chrome瀏覽器能正常下載圖片。刪除之後,Chrome還可以繼續下載。
去阿里雲控制檯確認,已經刪除了。
用QQ瀏覽器開啟圖片,被拒絕。
這說明圖片已經刪除成功了。
Chrome可以繼續下載,很可能是“瀏覽器快取”。
13.JSTL的if表示式。
sendId在Java中是String型別,資料庫中是varchar。
這種寫法,在Jetty下執行從來沒有報錯,在Tomcat下,突然就報錯了,之前沒問題。
<td><c:if test="${message.sendId==-1}">系統</c:if>
嚴謹的寫法,字串比較用''括起來。
<td><c:if test="${message.sendId=='-1'}">系統</c:if><c:if test="${message.sendId!='-1'}">${message.sendMember.mobile}</c:if></td>
14.maven如何將專案引用的所有jar包複製到lib資料夾內。
Maven的非web專案在執行時需要引用很多jar包,這時候通常的做法是將這些jar包統一放到lib目錄中,maven的dependency外掛可以幫我們做這件事情。
我們需要在pom檔案的build節點的plugins節點內新增一個plugin,plugin內容如下:
參考資料:http://outofmemory.cn/maven/FAQ/how-to-copy-dependency-to-lib-folder
15.Redis的幾個問題。
Redis快取物件,需要序列化。
public class OssItem implements Serializable。
如果沒有實現Serializable,會報錯。
public class OssItem extends BaseOssItem implements Serializable。
放到快取前,list集合OssItem元素的屬性都有值,屬性都是從父類BaseOssItem繼承來的。
但是,當從Redis取出的時候,list集合有值,但每個元素的屬性都是空的。
後來,把父類BaseOssItem的屬性,都手動定義放到OssItem下就可以了。
public class OssItem implements Serializable{
private String name;
...
}
16.Redis快取集合型別。
2個專案,都使用了SpringDataRedis,但是配置方式不一樣。
org.springframework.data.redis.core.StringRedisTemplate
其中1個,可以直接存放list集合。而另外一個卻會報錯,只能把集合序列化,再儲存。
序列化方式有很多種,這個地方用的是“json序列化”。
17.Nginx配置負債均衡。
之前,只親自配置過動靜分離,域名對映。
最近,看了下專案中和網上的負載均衡配置,挺簡單的。
18.Solr資料不同步。
Solr4中,用了SolrCloud分散式服務,出現了資料不一致的情況,原因未知。
改成了Solr5,沒有這個問題。
19.java.lang.NullPointerException錯誤
spring執行的時候出現了:
java.lang.NullPointerException
at org.springframework.core.SerializableTypeWrapper$TypeProxyInvocationHandler.invoke(SerializableTypeWrapper.java:239)
at org.springframework.core.$Proxy5.hashCode(Unknown Source)
問題原因:spring的jar包衝突
自己的專案,dubbo中有個spring2.5,又配置了spring4.x,調整下順序就好了。
參考資料:http://zhidao.baidu.com/link?url=KyfXakvRF7skwyJ8MLU_8x3qNThYbx2r478bi1ynQ1xrni6cWyki7PeQ_LkR3eJldPvRd_EbFsDrN3dGCbbP-RkjE5m5tLd00r5vaNTp_BO
20.SpringJUnit4ClassRunner.runLeaf方法找不到。
java.lang.NoSuchMethodError: org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runLeaf(Lorg/junit/runners/model/Statement;Lorg/junit/runner/Description;Lorg/junit/runner/notification/RunNotifier;)V
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:217)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:83)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:68)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:163)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
問題原因:
Spring版本
spring用3.x 不報錯。<spring.version>3.2.3.RELEASE</spring.version>
spring用4.x報錯。<spring.version>4.1.4.RELEASE</spring.version>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
最終結果:專案中有很多地方pom.xml都配置junit,各種版本。
最後,只留一個4.10的配置,就好了。
真是坑,花了幾個小時才搞定。
@PathVariable("id") Integer id;
@RequestParam Integer id;
使用了“路徑變數”,同時要求它不為空,就使用了
@RequestParam @PathVariable("id") Integer id;
訪問 /1001 ,結果提示id總是找不到。
使用了@PathVariable,不應該再同時使用@RequestParam。
12.阿里雲的OSS刪除圖片。
刪除之前,Chrome瀏覽器能正常下載圖片。刪除之後,Chrome還可以繼續下載。
去阿里雲控制檯確認,已經刪除了。
用QQ瀏覽器開啟圖片,被拒絕。
這說明圖片已經刪除成功了。
Chrome可以繼續下載,很可能是“瀏覽器快取”。
13.JSTL的if表示式。
sendId在Java中是String型別,資料庫中是varchar。
這種寫法,在Jetty下執行從來沒有報錯,在Tomcat下,突然就報錯了,之前沒問題。
<td><c:if test="${message.sendId==-1}">系統</c:if>
嚴謹的寫法,字串比較用''括起來。
<td><c:if test="${message.sendId=='-1'}">系統</c:if><c:if test="${message.sendId!='-1'}">${message.sendMember.mobile}</c:if></td>
14.maven如何將專案引用的所有jar包複製到lib資料夾內。
Maven的非web專案在執行時需要引用很多jar包,這時候通常的做法是將這些jar包統一放到lib目錄中,maven的dependency外掛可以幫我們做這件事情。
我們需要在pom檔案的build節點的plugins節點內新增一個plugin,plugin內容如下:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>MainClass</mainClass>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
</manifest>
<manifestEntries>
<Class-Path>.</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>E:\MavenRepository\0.0.1-SNAPSHOT\lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
</build>
參考資料:http://outofmemory.cn/maven/FAQ/how-to-copy-dependency-to-lib-folder
15.Redis的幾個問題。
Redis快取物件,需要序列化。
public class OssItem implements Serializable。
如果沒有實現Serializable,會報錯。
public class OssItem extends BaseOssItem implements Serializable。
放到快取前,list集合OssItem元素的屬性都有值,屬性都是從父類BaseOssItem繼承來的。
但是,當從Redis取出的時候,list集合有值,但每個元素的屬性都是空的。
後來,把父類BaseOssItem的屬性,都手動定義放到OssItem下就可以了。
public class OssItem implements Serializable{
private String name;
...
}
16.Redis快取集合型別。
2個專案,都使用了SpringDataRedis,但是配置方式不一樣。
org.springframework.data.redis.core.StringRedisTemplate
其中1個,可以直接存放list集合。而另外一個卻會報錯,只能把集合序列化,再儲存。
public void add(String key,List<ResourceMatchContent> list){
String json = JSONObject.toJSONString(list);
logger.info("save ResourceMatch ,json=" + json+",key="+key);
defaultCache.add(key, json, CATCHE_TIME);
}
序列化方式有很多種,這個地方用的是“json序列化”。
17.Nginx配置負債均衡。
之前,只親自配置過動靜分離,域名對映。
最近,看了下專案中和網上的負載均衡配置,挺簡單的。
upstream jieli.com {
server 127.0.0.1:8080;
#server 192.168.8.203:8080;
}
server{
listen 80;
server_name erp.zh-jieli.com;
location / {
index index; #預設主頁為 /index
#proxy_pass http://jieli;
}
}
18.Solr資料不同步。
Solr4中,用了SolrCloud分散式服務,出現了資料不一致的情況,原因未知。
改成了Solr5,沒有這個問題。
19.java.lang.NullPointerException錯誤
spring執行的時候出現了:
java.lang.NullPointerException
at org.springframework.core.SerializableTypeWrapper$TypeProxyInvocationHandler.invoke(SerializableTypeWrapper.java:239)
at org.springframework.core.$Proxy5.hashCode(Unknown Source)
問題原因:spring的jar包衝突
自己的專案,dubbo中有個spring2.5,又配置了spring4.x,調整下順序就好了。
參考資料:http://zhidao.baidu.com/link?url=KyfXakvRF7skwyJ8MLU_8x3qNThYbx2r478bi1ynQ1xrni6cWyki7PeQ_LkR3eJldPvRd_EbFsDrN3dGCbbP-RkjE5m5tLd00r5vaNTp_BO
20.SpringJUnit4ClassRunner.runLeaf方法找不到。
java.lang.NoSuchMethodError: org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runLeaf(Lorg/junit/runners/model/Statement;Lorg/junit/runner/Description;Lorg/junit/runner/notification/RunNotifier;)V
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:217)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:83)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184)
at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:68)
at org.junit.runners.ParentRunner.run(ParentRunner.java:236)
at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:163)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
問題原因:
Spring版本
spring用3.x 不報錯。<spring.version>3.2.3.RELEASE</spring.version>
spring用4.x報錯。<spring.version>4.1.4.RELEASE</spring.version>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
</dependency>
最終結果:專案中有很多地方pom.xml都配置junit,各種版本。
最後,只留一個4.10的配置,就好了。
真是坑,花了幾個小時才搞定。
相關文章
- 2016年工作中遇到的問題21-30
- 工作中遇到的問題
- 關於工作中遇到的問題
- 2016年工作中遇到的問題1-10:select-for-update鎖表
- 有待整理的工作中遇到的問題
- vue工作中遇到的一些小問題Vue
- 2015年工作中遇到的問題91-100
- 2015年工作中遇到的問題141-150
- 2015年工作中遇到的問題121-130
- 工作中遇到的一些問題和處理
- 2015年工作中遇到的問題111-120
- 2015年工作中遇到的問題101-110
- 2015年工作中遇到的問題:131-140(有圖才有真相)
- Error-工作中遇到的Error
- 工作遇到的問題
- mysql 遇到的問題MySql
- 工作中遇到的Linux命令Linux
- linux遇到的問題Linux
- 使用git遇到的問題Git
- AndroidJNI遇到的問題Android
- 面試中遇到的問題面試
- ueditor使用遇到的問題
- JSP遇到的問題....JS
- WangEditor遇到的問題
- 2017年秋季遇到的相容問題總結
- 那些前端工作中遇到的坑(01)前端
- [譯] 怎樣更好地使用 Vue:我在新工作中遇到的一些問題清單Vue
- 【面試】工作中遇到的難點及解決方案——人臉解鎖相機衝突問題面試
- javaweb中自己遇到的問題JavaWeb
- Go mod 使用遇到的問題Go
- Laravel 安裝遇到的問題Laravel
- Laravel-pay 遇到的問題Laravel
- 多語言遇到的問題
- laravel使用中遇到的問題Laravel
- React Native遇到的問題React Native
- c++使用遇到的問題C++
- fastadmin自己遇到的問題AST
- 遇到問題的解決方法