Java項目實際報錯和解決方案(持續更新)

1.source  not  find  錯誤html

對於前臺傳入過來的參數不瞭解,致使不太明白。source  not   find 出現的錯誤,可能就是前臺的數據沒有傳過來,致使數據出現錯誤。前端

好比:java

前臺web

$.ajaxFileUpload({ajax

url  :'../upload/uploadPic.do',spring

type :'post',sql

traditional :true,數據庫

fileElementId:'imageData', //id,這句話當時被註釋掉了,致使前臺的數據沒法傳遞過來。同時,後臺也沒有相應的id參數,去接收相應的前臺數據。apache

dataType:'text',json

data :{imageData:pic},

async :false,

success:function(data,status){

// alert(pic);

// data=parseInt($.trim(data));

// if(data==1){

// alert("圖片上傳成功...");

// }else{

// alert("圖片上傳失敗...");

// }

},

後臺:

public void uploadPic(@RequestParam String imageData,//這個參數沒有寫,致使後臺沒法找到前臺的數據,報錯的是source  not  find 

HttpServletRequest request, HttpServletResponse response){

                    FileOutputStream fos = null;

try {

//base64解析圖片信息

BASE64Decoder base = new BASE64Decoder();

byte[] ImageByte = base.decodeBuffer(imageData);

//寫進文件  

String home = System.getProperty("user.home");

String filePath = home + "/Desktop/testImg/" + new Date().getTime() + "" + new Random().nextInt(100000) + ".png";

File file = new File(filePath);

if(!file.exists()){

file.createNewFile();

}

fos = new FileOutputStream(file);

fos.write(ImageByte);

System.out.println(file.getAbsolutePath());

} catch (IOException e) {

e.printStackTrace();

}finally{

try {

fos.flush();

fos.close();  

} catch (IOException e) {

e.printStackTrace();

}  

fos=null;

}

2.日誌文件配置

web.xml的配置

<!-- log4j日誌配置 開始-->

<context-param>

    <param-name>log4jConfigLocation</param-name>

    <param-value>classpath:properties/log4j.properties</param-value>

</context-param>

<listener>

    <listener-class>

     org.springframework.web.util.Log4jConfigListener

    </listener-class>

</listener>

<!-- log4j結束 -->

3.Could not resolve type alias 'DgRoleMapper'

問題的解決:

<property name="typeAliasesPackage" value="com.xxxx.core.bean.table,com.xxxx.core.bean.faceidentifyservice"/>這裏沒有進行掃描

</bean>

<select id="getDgRoleist" parameterType="DgRole" resultMap="dgRole">這裏填寫有誤

<include refid="dgRoleSelector"/>

<include refid="dgRoleWhere"/>

</select>

4.問題:

多是配置文件的問題,webServiceImpl.xml,其次是web.xml文件。web.xml沒有配置servlet.

5.出錯:spring.liveBeansView.mbeanDomain,這個是日誌的問題,能夠不用解決。

6.Could not determine bean name for instance of classclass org.apache.cxf.bus.

    沒有配置在web.xml中配置cxf的servlet;或者地址錯誤。

7.cannot be cast to 不能被轉換爲

    也就是返回的類型和被定義的類型不匹配。致使不能被匹配。

8.The source attachment doesnot contain the source for the file nativemethodaccessorimpl.class.

    解決:Source Not found。 不是錯誤。而是你在工程裏設置了調試斷點,因此自動進入調試模式,而後IDE開始尋找源碼。找不到源碼,就會出現上

述界面。因此解決的方法就是去掉斷點就好了。

9.使用ajax傳遞數據到後臺,同時後臺傳遞數據到前臺。產生的問題:return "/query/action.do",沒法返回頁面。主要的緣由:ajax致使沒法返回頁面。

解決:後臺:

    後臺處理以後:

JSONObject jo = new JSONObject();

jo.put("userId", userId);//主要是把userId傳遞到前臺

jo.put("msg", "success");

ResponseUtils.renderJson(response, jo.toString());

    前臺接收數據:   

function convertCanvasToImage() {

var pic = document.getElementById("canvas").toDataURL("image/png");

pic = pic.replace(/^data:image\/(png|jpg);base64,/, "");

$.ajaxFileUpload({

url  :'../upload/uploadPic.shtml',

type :'post',

traditional :true,

fileElementId:'imageData', //id

dataType:'text',

data :{imageData:pic},

async :false,

success:function(data){ //返回數據接收後臺數據

if(data){

var jsonObj = JSON.parse(data.match(/{.*?}/)&&data.match(/{.*?}/)[0]||"{}");

if(jsonObj.msg =="success"){

location.href ="registerUserinfo.jsp?userId="+jsonObj.userId;

}else if(jsonObj.msg =="faild"){

alert("註冊失敗!")

layer.open({

title : false,

skin: 'layui-layer-molv',

content : '註冊失敗,請與管理員聯繫'

});

}

}

},

error:function(data){

//loginFaild();

}

});

}

10.虛擬化的 Intel VT-x/EPT 要求具有 64 位客戶機支持。不使用虛擬化的 Intel VT-x/EPT,是否繼續?

開機的時候按F12,進入bois中的intel設置爲enabled。

11.服務器拒絕了SFTP鏈接,但它監聽FTP鏈接。想要用FTP協議來代替SFTP嗎?最好是用加密的。

Linux沒有安裝ftp。須要進行安裝。http://blog.csdn.net/hyholine/article/details/24579001 。


12.安裝ftp的時候報錯。

13.Required MultipartFile parameter 'pic' is not present 文件上傳,也屬於數據沒有傳過來的現象,由於現實的是pic爲null的話。

    通常若是是在方法上,現實的字段數據爲null,代表該數據沒有傳遞過來。

問題的來源:

@RequestMapping(value="/image/uplodImg.shtml", method = RequestMethod.POST)

/**

 * 測試圖片類

 * @param pic 圖片

 * @param response

 */

public void uplodImg(@RequestParam("") MultipartFile pic,HttpServletResponse response){

try {

byte[] image = pic.getBytes();

String faceId = Utils.geneterUUID();

解決:

public void uplodImg(@RequestParam("file") MultipartFile pic,HttpServletResponse response){

try {

byte[] image = pic.getBytes();

String faceId = Utils.geneterUUID();

 

@SuppressWarnings("unused")

List<FaceRect> list = new ArrayList<FaceRect>();

注意:file要和頁面上傳文件控件中的name一致,否則會致使出錯。

 

 14.Request method "Post" not supported

對於有ajax的上傳的頁面,出現這樣的問題。

解決:先加載頁面,而後寫。。。

15.jsp頁面中"http://java.sun.com/jsp/jstl/core"報錯。

解決:沒有導入jar包 ,把jstl-1.2導入。  

16.maven錯誤

http://www.cnblogs.com/tenghoo/p/maven_error.html 

17.錯誤:

「No mapping found for HTTP request with URI」 

Did not find handler method for [/backaction/backindex.do]  ~ org.springframework.web.servlet.handler.AbstractHandlerMethodMapping.getHandlerInternal(AbstractHandlerMethodMapping.java:230) ~ org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping ~ 39478

2016-04-08 10:25:43,347 WARN  ~ No mapping found for HTTP request with URI [/keyCloud/backaction/backindex.do] in DispatcherServlet with name 'back'  ~ org.springframework.web.servlet.DispatcherServlet.noHandlerFound(DispatcherServlet.java:1108) ~ org.springframework.web.servlet.PageNotFound ~ 39479

2016-04-08 10:25:43,347 DEBUG ~ Successfully completed request  ~ org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:966) ~ org.springframework.web.servlet.DispatcherServlet ~ 39479

緣由:已經配置了註解,可是配置文件有配置一個註解,把原來的給覆蓋了,沒法使用。使用刪除後面的註解就行。註冊註解處理器
<mvc:annotation-driven />把這個刪除就行。

 

18.$.post傳遞不過來參數,怎麼回事?

http://www.oschina.net/question/2334057_237284 。首先檢查頁面的參數是否有問題。 

19.SrpingMVC

 No adapter for handler [public java.lang.String com.keyCloud.core.controller.back.backCenterController.backindex()]: The DispatcherServlet configuration needs to include a HandlerAdapter that supports this handler

解決:若是增長了攔截器,就必須配置適配器、映射器等。這個問題是沒有配置適配器。兩個同時存在。

 

 
  1. <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping">
  2. <property name="interceptors">
  3. <list>
  4. <bean class="com.keyCloud.core.web.backSpringmvcInterceptor">
  5.  
  6. </bean>
  7. </list>
  8. </property>
  9. </bean>
  10. <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>
  11.  

20.It is indirectly referenced from required .class file 前面跟着類。出錯

maven管理中缺乏這個包,請導入這個類的包。

21. The method replaceFirst(String, String) in the type String is not applicable for the arguments (char, String)

 

 startDate = startDate.replaceFirst(startDate.charAt(7), "月");  類型轉換的問題。

22. Java出現No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing。

 因而百度谷歌了一下相關資料。原來我寫的內部類是動態的,也就是開頭以public class開頭。而主程序是public static class main。在Java中,類中的靜態方法不能直接調用動態方法。

 只有將某個內部類修飾爲靜態類,而後纔可以在靜態類中調用該類的成員變量與成員方法。因此在不作其餘變更的狀況下,最簡單的解決辦法是將public class改成public static class.

23. Injection of resource dependencies failed; nested exception is org.springfra

類注入失敗。一是:沒有掃描包;二是配置問題,配置的位置放錯了文件。

24.java.lang.NoClassDefFoundError: org/springframework/core/DefaultParameterNameDiscoverer

spring-core核心包沒有導入,或者核心包衝突。從新導入就行。

25.getwriter() has already been called for this response。

java.lang.IllegalStateException: getWriter() has already been called for this response

在執行下述代碼時報錯,

OutputStream out = getResponse().getOutputStream();

緣由爲代碼中有打開的Response.getWriter(),未關閉,因調用點較多,很差一一排查。

經過查看代碼,看到response中的usingWriter=true,隨即想辦法將該標誌位設置爲false。

response.reset(); 便可,注意reset後緩存消失,設置消失。

OutputStream和Writer在一個response中不能同時得到。

26.定時器:Unable to store job because one already exists with this identification

解決方法:

You can:

  • check if the "job key" already exists, and remove the existing job before creating a new one:

    scheduler.deleteJob(job1Key);

  • or create a new job with another key (in your case, each time you execute scheduleJobs(), variable i has the same value (0)

  • or just re-use the same job (why would you create a new job if the old one is still good)

  • or use the RAM Job Store, which does not persist jobs in database (each time you will use your software, you will have an empty job store)

  •  

27.tomcat啓動的時候

org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/cigar-box-frontend]]

應該是web.xml的問題:

<servlet>

<servlet-name>cigarboxFrontendMvc</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<init-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:spring/spring-mvc.xml</param-value>

</init-param>

<load-on-startup>1</load-on-startup>

<multipart-config>

<max-file-size>5242880</max-file-size><!-- 5MB -->

<max-request-size>20971520</max-request-size><!-- 20MB -->

<file-size-threshold>0</file-size-threshold>

</multipart-config>

</servlet>

<!--爲DispatcherServlet創建映射 -->

<servlet-mapping>

<servlet-name>cigarboxFrontendMvc</servlet-name>

<url-pattern>/</url-pattern>

</servlet-mapping>

28.文件上傳的問題

transferTo 上傳失敗

緣由:1.jetty環境和tomcat環境下的是不同的,主要的是根目錄有問題。

tomcat下面是沒有問題的,而jetty不要帶D:\就好了,jetty會自動添加到保存的本地目錄。

29.Caused by: java.sql.SQLException: Field 'id' doesn't have a default value

解決方法:數據庫的id沒有設置爲自動增加,或者實體類沒有設置自動增加。

30.Caused by: java.net .SocketException: Broken pipe

at java.net

.SocketOutputStream.socketWrite0(Native Method) ~[na:1.7.0_79]

at java.net

.SocketOutputStream.socketWrite(SocketOutputStream.java:113) ~[na:1.7.0_79]

at java.net

.SocketOutputStream.write(SocketOutputStream.java:159) ~[na:1.7.0_79]

at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:215) ~[tomcat-coyote.jar:7.0.63]

at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:480) ~[tomcat-coyote.jar:7.0.63]

at org.apache.coyote.http11.InternalOutputBuffer.flush(InternalOutputBuffer.java:119) ~[tomcat-coyote.jar:7.0.63]

at org.apache.coyote.http11.AbstractHttp11Processor.action(AbstractHttp11Processor.java:801) [tomcat-coyote.jar:7.0.63]

at org.apache.coyote.Response.action(Response.java:172) ~[tomcat-coyote.jar:7.0.63]

at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:363) ~[catalina.jar:7.0.63]

... 42 common frames omitted

解決方法:請求超時-前端顯示,或者請求好久纔出現數據。一是網絡,二是查詢數據很慢,致使的。

多是數據庫的問題,若是是查詢根據id,有沒有設置主鍵id;而是數據大,查詢很慢,致使超時,程序代碼很簡單,有沒有設置索引。

31.tar -zxvf apache-storm-1.1.1.tar.gz

gzip: stdin: not in gzip format

tar: Child returned status 1

tar: Error is not recoverable: exiting now

解決方法:1.查看文件 的屬性,file apache-storm-1.1.1.tar.gz

apache-storm-1.1.1.tar.gz: HTML document text。代表是heml,因此解壓不了。從新下載包進去解壓。

2.棄掉z參數。

相關文章
相關標籤/搜索