>Java >java지도 시간 >Java 예외 수집

Java 예외 수집

伊谢尔伦
伊谢尔伦원래의
2016-11-25 10:56:581152검색

키워드: Java

산술 예외 클래스: ArithmeticExecption

Null 포인터 예외 클래스: NullPointerException

유형 캐스트 ​​예외: ClassCastException

배열 음수 첨자 예외 : NegativeArrayException

배열 첨자 범위를 벗어난 예외: ArrayIndexOutOfBoundsException

보안 위반 예외: SecurityException

파일 종료 예외: EOFException

파일을 찾을 수 없음 예외 발견: FileNotFoundException

문자열 대 숫자 예외: NumberFormatException

작업 데이터베이스 예외: SQLException

입력 및 출력 예외: IOException

메서드를 찾을 수 없음 예외 :NoSuchMethodException

1. java.lang.nullpointerException

누구나 이 예외를 자주 접했을 것입니다. 예외에 대한 설명은 "프로그램이 널 포인터를 발견했습니다." 간단히 말하면, 사용하지 않는 포인터를 호출하는 것입니다. 초기화된 개체 또는 존재하지 않는 개체입니다. 이미지를 생성하거나 배열을 호출하는 등의 작업에서 이 오류가 자주 발생합니다. 예를 들어 이미지를 생성할 때 경로가 잘못되었습니다. 배열 작업에서 널 포인터가 발생하는 것은 프로그래밍을 막 배우기 시작한 친구들이 저지르는 흔한 실수입니다. 즉, 배열 초기화와 배열 요소 초기화를 혼동하는 경우가 많습니다. 배열의 초기화는 배열에 필요한 공간을 할당하는 것으로, 초기화된 배열의 요소는 인스턴스화되지 않고 여전히 비어 있으므로 각 요소를 초기화해야 합니다(호출하려면)

 2.java.lang.classnotfoundException

이 예외는 원래 jb 아래의 jb 컴파일 패키지와 같은 개발 환경에서 개발한 많은 프로그래머들이 wtk 아래에서 발생하는 일반적인 문제입니다. "지정된 클래스가 존재하지 않습니다." 여기서는 클래스의 이름과 경로가 올바른지 여부를 주로 고려합니다. jb 아래에 패키지가 만들어진 경우에는 일반적으로 패키지가 추가되므로 wtk로 전환한 후 주의해야 합니다. 패키지 경로입니다.

 3.java.lang.arithmeticException

이 예외에 대한 설명은 "수학적 연산 예외"입니다. 예를 들어 프로그램에서 0으로 나누기와 같은 연산이 발생하면 이러한 예외가 발생합니다. 이상이 발생하면 모든 사람은 공식에 문제가 있는지 확인하기 위해 프로그램에 포함된 수학적 연산을 주의 깊게 확인해야 합니다.

 4.java.lang.arrayindexoutofboundsException

나는 많은 친구들이 이 예외를 자주 접했다고 생각합니다. 예외에 대한 설명은 현재 대부분의 프로그램에 배열이 있습니다. 따라서 배열을 호출할 때 호출하는 첨자가 배열의 범위를 초과하는지 주의 깊게 확인해야 합니다. 일반적으로 표시(즉, 상수를 첨자로 직접 사용) 호출에서는 오류가 발생하는 경향이 없습니다. 이러한 오류는 있지만 암시적(즉, 변수를 사용하여 첨자를 나타내는) 호출이 잘못되는 경우가 많습니다. 또 다른 상황은 프로그램에 정의된 배열의 길이가 일부 특정 메서드에 의해 결정되고 이 경우입니다. 이 예외를 방지하려면 먼저 배열의 길이를 확인하는 것이 가장 좋습니다.

 5.java.lang.illegalargumentException

이 예외에 대한 설명은 "메서드 매개변수 오류"입니다. j2me 클래스 라이브러리의 많은 메소드는 다음과 같은 경우에 이러한 오류를 발생시킵니다. 볼륨 조정 메소드의 볼륨 매개변수가 음수로 작성된 경우 발생합니다. 또 다른 예는 g.setcolor(int red, int green, int blue) 메소드의 세 값인 경우에도 발생합니다. 255개가 넘습니다. 그래서 이 예외를 발견했다면, 우리가 해야 할 일은 메소드 호출에 전달된 매개변수에 오류가 있는지 빠르게 확인하는 것입니다.

 6.java.lang.illegalaccessException

이 예외에 대한 설명은 "접근 권한 없음"입니다. 애플리케이션에서 클래스를 호출하려고 하지만 현재 메서드에 대한 접근 권한이 없습니다. 클래스 이 예외가 발생합니다. 프로그램에서 패키지를 사용할 때 이 예외에 주의하세요.

그 외에도 많은 예외가 있으므로 하나씩 나열하지는 않겠습니다. 자격을 갖춘 프로그래머는 프로그램의 일반적인 문제와 해당 솔루션에 대해 상당한 이해가 있어야 한다는 것입니다. 프로그램을 변경하지 않고 그냥 작성하는 데 그친다면 자신의 발전에 큰 영향을 미칠 것입니다. 예외에 대한 모든 설명은 API에서 찾을 수 있습니다.

java.lang.AbstractMethodError

추상 메서드 오류입니다. 애플리케이션이 추상 메소드를 호출하려고 시도할 때 발생합니다.

java.lang.AssertionError

어설션 오류입니다. 어설션 실패를 나타내는 데 사용됩니다.

 java.lang.ClassCircularityError

 클래스 순환 종속성 오류입니다. 클래스를 초기화할 때 클래스 간의 순환 종속성이 감지되면 이 예외가 발생합니다.

 java.lang.ClassFormatError

 클래스 형식 오류입니다. JVM(Java Virtual Machine)이 파일에서 Java 클래스를 읽으려고 시도하고 파일 내용이 클래스의 유효한 형식을 따르지 않는 것을 감지하면 발생합니다.

java.lang.Error

오류. 모든 오류의 기본 클래스이며 심각한 프로그램 작동 문제를 식별하는 데 사용됩니다. 이러한 문제는 일반적으로 응용 프로그램에서 포착해서는 안 되는 몇 가지 비정상적인 상황을 설명합니다.

이유:

 1. 시스템에서 접근하는 외부 리소스가 닫히지 않아 외부 리소스가 많이 낭비되어 결국 시스템이 정상적으로 작동하지 못할 수 있습니다.

 2. 외부 리소스; 시스템이 접근하는 리소스가 너무 많이 닫혀 외부 시스템이 정상적으로 처리할 수 없습니다.

 3. 시스템이 접근하는 외부 리소스에 이상이 발생합니다.

해결 방법:

1. 외부 리소스에 접근하기 전에 먼저 리소스(데이터베이스 등)가 연결되거나 정상적으로 작동되는지 확인하세요.

2. 외부 리소스 접근 시, 연결이 이루어지면 종료 작업을 반드시 수행해야 하며, 한 번만 수행해야 합니다.

 3. 작업에 의한 리소스 소모를 줄이고 프로그램 실행 효율성을 높이기 위해 동일한 작업에서 외부 리소스를 공유해 보세요.

 java.lang.ExceptionInInitializerError

 초기화 프로그램 오류입니다. 클래스의 정적 초기화 프로그램을 실행하는 동안 예외가 발생할 때 발생합니다. 정적 초기화 프로그램은 클래스에 직접 포함된 정적 문 세그먼트를 참조합니다.

java.lang.IllegalAccessError

불법 접근 오류입니다. 이 예외는 애플리케이션이 클래스의 필드(Field)에 액세스 또는 수정하거나 해당 메서드를 호출하려고 시도하지만 필드 또는 메서드의 가시성 선언을 위반하는 경우 발생합니다.

java.lang.In CompatibleClassChangeError

호환되지 않는 클래스 변경 오류입니다. 이 예외는 실행 중인 메서드가 종속된 클래스 정의에서 호환되지 않는 변경이 발생할 때 발생합니다. 일반적으로 이 오류는 전체 애플리케이션을 다시 컴파일한 후 직접 실행하지 않고 애플리케이션의 일부 클래스 선언 정의를 수정하는 경우 쉽게 발생합니다.

 java.lang.InstantiationError

 인스턴스화 오류입니다. 이 예외는 애플리케이션이 Java의 new 연산자를 통해 추상 클래스 또는 인터페이스를 구성하려고 시도할 때 발생합니다.

 java.lang.InternalError

내부 오류입니다. JVM(Java Virtual Machine)에서 내부 오류가 발생했음을 나타내는 데 사용됩니다.

java.lang.LinkageError

링크 오류입니다. 이 오류와 모든 하위 클래스는 클래스가 다른 클래스에 종속되어 있음을 나타내며 종속 클래스는 모든 클래스를 다시 컴파일하지 않고 클래스 정의를 변경하므로 오류 조건이 발생합니다.

 java.lang.NoClassDefFoundError

 클래스 정의를 찾을 수 없는 오류입니다. 이 오류는 JVM(Java Virtual Machine) 또는 클래스 로더가 클래스 인스턴스화를 시도하고 클래스 정의를 찾을 수 없을 때 발생합니다.

java.lang.NoSuchFieldError

필드가 존재하지 않습니다. 이 오류는 애플리케이션이 해당 필드에 대한 정의가 없는 클래스의 필드에 액세스하거나 수정하려고 시도할 때 발생합니다.

java.lang.NoSuchMethodError

메소드에 오류가 없습니다. 이 오류는 애플리케이션이 메소드에 대한 정의가 없는 클래스의 메소드를 호출하려고 시도할 때 발생합니다.

java.lang.OutOfMemoryError

메모리 부족 오류입니다. 이 오류는 JVM(Java Virtual Machine)이 객체를 할당하는 데 사용 가능한 메모리가 부족한 경우 발생합니다.

java.lang.StackOverflowError

스택 오버플로 오류입니다. 이 오류는 애플리케이션이 너무 많은 재귀 호출을 수행하여 스택 오버플로를 일으킬 때 발생합니다.

java.lang.ThreadDeath

스레드가 종료됩니다. 이 오류는 스레드의 끝을 나타내기 위해 Thread 클래스의 stop 메소드가 호출될 때 발생합니다.

java.lang.UnknownError

알 수 없는 오류입니다. JVM(Java Virtual Machine)에서 알 수 없는 심각한 오류가 발생했음을 나타내는 데 사용됩니다.

java.lang.UnsatisfiedLinkError

만족스럽지 못한 링크 오류입니다. JVM(Java Virtual Machine)이 기본 메소드를 선언하는 클래스의 기본 언어 정의를 찾지 못할 때 발생합니다.

 java.lang.UnsupportedClassVersionError

 지원되지 않는 클래스 버전 오류입니다. 이 오류는 JVM(Java Virtual Machine)이 특정 클래스 파일을 읽으려고 시도하지만 해당 파일의 주 버전 번호와 부 버전 번호가 현재 JVM(Java Virtual Machine)에서 지원되지 않는 것을 발견한 경우 발생합니다.

java.lang.VerifyError

확인 오류입니다. 이 오류는 유효성 검사기가 클래스 파일에서 내부 비호환성 또는 보안 문제를 감지할 때 발생합니다.

java.lang.VirtualMachineError

가상 머신 오류입니다. 가상 머신이 파괴되었거나 작업을 계속하기에 리소스가 부족한 상황을 나타내는 데 사용됩니다.

java.lang.ArithmeticException

산술 조건 예외입니다. 예: 0으로 정수 나누기 등

 java.lang.ArrayIndexOutOfBoundsException

 배열 인덱스가 범위를 벗어난 예외입니다. 배열의 인덱스가 음수이거나 배열 크기보다 크거나 같을 때 발생합니다.

 java.lang.ArrayStoreException

 배열 저장 예외. 배열이 아닌 선언 유형의 객체가 배열에 저장될 때 발생합니다.

java.lang.ClassCastException

클래스 캐스팅 예외입니다. 클래스 A와 B가 있고(A는 B의 상위 클래스 또는 하위 클래스가 아님) O가 A의 인스턴스라고 가정하면 O가 클래스 B의 인스턴스로 생성되도록 강제될 때 이 예외가 발생합니다. 이 예외를 종종 캐스트 예외라고 합니다.

 java.lang.ClassNotFoundException

 클래스 예외를 찾을 수 없습니다. 이 예외는 애플리케이션이 문자열 형식의 클래스 이름을 기반으로 클래스를 구성하려고 시도하지만 CLASSPAH를 순회한 후 해당 이름의 클래스 파일을 찾을 수 없는 경우 발생합니다.

java.lang.CloneNotSupportedException

Clone 예외는 지원되지 않습니다. Cloneable 인터페이스가 구현되지 않거나 clone 메서드가 지원되지 않는 경우 해당 clone() 메서드를 호출하면 이 예외가 발생합니다.

 java.lang.EnumConstantNotPresentException

 열거 상수에는 예외가 없습니다. 이 예외는 애플리케이션이 이름 및 열거 유형으로 열거 객체에 액세스하려고 시도하지만 열거 객체에 상수가 포함되어 있지 않은 경우 발생합니다.

java.lang.Exception

루트 예외입니다. 애플리케이션이 캡처하려는 상황을 설명하는 데 사용됩니다.

java.lang.IllegalAccessException

잘못된 액세스 예외입니다. 이 예외는 애플리케이션이 클래스의 인스턴스를 생성하거나, 클래스 속성에 액세스하거나, 리플렉션을 통해 클래스 메서드를 호출하려고 할 때 클래스, 속성, 메서드 또는 생성자의 정의에 액세스할 수 없는 경우 발생합니다.

java.lang.IllegalMonitorStateException

잘못된 모니터링 상태 예외입니다. 이 예외는 스레드가 자신이 소유하지 않은 개체(O)의 모니터를 기다리려고 하거나 다른 스레드에게 해당 개체(O)의 모니터를 기다리도록 알릴 때 발생합니다.

java.lang.IllegalStateException

잘못된 상태 예외입니다. 이 예외는 Java 환경 및 애플리케이션이 특정 메소드의 적법한 호출 상태에 있지 않고 해당 메소드가 호출되는 경우 발생합니다.

java.lang.IllegalThreadStateException

잘못된 스레드 상태 예외입니다. 해당 카운티가 특정 메소드의 적법한 호출 상태가 아닌 경우 해당 메소드가 호출되면 예외가 발생합니다.

java.lang.IndexOutOfBoundsException

인덱스 범위를 벗어난 예외입니다. 이 예외는 시퀀스의 인덱스 값이 0보다 작거나 시퀀스 크기보다 크거나 같을 때 발생합니다.

java.lang.InstantiationException

인스턴스화 예외입니다. 이 예외는 newInstance() 메서드를 통해 클래스의 인스턴스를 생성하려고 할 때 발생하며 해당 클래스는 추상 클래스 또는 인터페이스입니다.

 java.lang.InterruptedException

 Interrupted 예외. 이 예외는 스레드가 오랜 시간 동안 대기, 휴면 또는 기타 정지 상태에 있고 다른 스레드가 Thread의 인터럽트 메소드를 통해 스레드를 종료할 때 발생합니다.

java.lang.NegativeArraySizeException

배열 크기가 음수입니다. 이 예외는 음수 크기 값으로 배열이 생성될 때 발생합니다.

java.lang.NoSuchFieldException

속성에는 예외가 없습니다. 이 예외는 클래스의 존재하지 않는 속성에 액세스할 때 발생합니다.

java.lang.NoSuchMethodException

메소드에는 예외가 없습니다. 이 예외는 존재하지 않는 클래스 메서드에 액세스할 때 발생합니다.

java.lang.NullPointerException

널 포인터 예외입니다. 이 예외는 애플리케이션이 객체가 필요한 곳에 null을 사용하려고 시도할 때 발생합니다. 예를 들어 null 개체의 인스턴스 메서드 호출, null 개체의 속성에 액세스, null 개체의 길이 계산, throw 문을 사용하여 null을 던지는 등입니다.

 java.lang.NumberFormatException

 숫자 형식 예외입니다. 이 예외는 문자열을 지정된 숫자 유형으로 변환하려고 시도하고 문자열이 숫자 유형에 필요한 형식을 충족하지 않는 경우 발생합니다.

java.lang.RuntimeException

런타임 예외입니다. JVM(Java Virtual Machine)의 정상적인 작동 중에 발생할 수 있는 모든 예외의 상위 클래스입니다.

java.lang.SecurityException

보안 예외입니다. 보안 위반을 나타내기 위해 보안 관리자가 던진 예외입니다.

 java.lang.StringIndexOutOfBoundsException

 문자열 인덱스가 범위를 벗어난 예외입니다. 이 예외는 0보다 작거나 시퀀스 크기보다 크거나 같은 인덱스 값을 사용하여 문자열의 문자에 액세스할 때 발생합니다.

java.lang.StringIndexOutOfBoundsException

문자열 범위를 벗어난 오류 및 기타 문자열 클래스 관련 오류

코드 세그먼트 4:

String s_all_power = " 1010011";

String s_access_power = s_all_power.substring(3,4);

설명:

위 코드 조각의 기능은 문자열 s_all_power.

 참고:

일반적인 상황에서는 프로그램에 문제가 없습니다. 어떤 이유로 s_all_power의 길이가 짧아지면 프로그램에서 문자열 오류가 발생합니다.

해결 방법: 문자열(substring, charAt)을 가로채서 바이트 배열(getBytes)로 변환하고, 문자 배열을 문자열(valueOf)로 변환할 때 먼저 문자열 개체가 있는지 확인합니다. 비어 있음) 진행하기 전에 길이를 확인합니다.

다시 작성됨:

String s_all_power = "1010011";

if (s_all_power.length>4)

String s_access_power = s_all_power.substring(3 , 4);

java.lang.TypeNotPresentException

유형에는 예외가 없습니다. 이 예외는 애플리케이션이 유형 이름의 문자열 표현으로 유형에 액세스하려고 시도하지만 지정된 이름을 기반으로 유형을 찾을 수 없는 경우 발생합니다. 이 예외와 ClassNotFoundException의 차이점은 이 예외는 확인되지 않은(확인되지 ​​않은) 예외이고 ClassNotFoundException은 확인된(확인된) 예외라는 것입니다.

 java.lang.UnsupportedOperationException

 지원되지 않는 메서드 예외입니다. 요청한 메서드가 지원되지 않음을 나타내는 예외입니다.

예외

javax.servlet.jsp.JspException: /Login 작업에 대한 매핑을 검색할 수 없습니다(/Login은 작업 이름입니다)

가능한 이유

 액션이 struts-config.xml에 정의되어 있지 않거나 JSP 파일에서

을 사용하는 등 일치하는 액션이 ​​없습니다 --------------- -- ------------------------------------------------ -- ------------------------------------------------ --

 Exception

 org.apache.jasper.JasperException: Form Bean null에 대한 정의를 검색할 수 없습니다

 가능한 이유

 이 예외는 Struts에 따르면 struts-config.xml로 매핑이 작업에서 예상하는 양식 빈을 찾지 못했습니다. 대부분의 경우 form-bean에 설정된 name 속성과 action에 설정된 name 속성이 일치하지 않아 발생합니다. 즉, 작업과 양식 모두 대소문자를 포함하여 정확히 일치하는 이름 속성을 각각 가져야 합니다. 이 오류는 작업과 연결된 이름 속성이 없는 경우에도 발생합니다. 작업에 이름 속성이 지정되지 않은 경우 작업과 연결된 이름 속성이 없습니다. 물론, 액션이 폼 데이터를 처리하는 대신 매개변수 값을 기반으로 해당 jsp 페이지로 점프하는 등 특정 컨트롤을 생성할 때는 name 속성을 사용하지 않는 것도 액션을 사용하는 방식 중 하나이다.

 ------------------------------- - ------------------------------------------------- - -----

 예외

 /xxxx 경로에 대한 작업 인스턴스를 생성할 수 없습니다

 가능한 이유

특별한 팁: 이 오류가 발생할 수 있는 상황은 다양하므로, 더 많은 정보에서 잠재적인 오류를 확인할 수 있도록 웹 서버의 로그/디버그 수준을 높이는 것이 좋습니다. struts-config.xml에 연관을 설정한(즉, 태그를 추가한) 액션 클래스를 생성하려고 할 때 발생했습니다.

struts-config.xml에 있는 action 태그의 class 속성을 통해 지정된 action 클래스를 찾을 수 없는 데는 여러 가지 이유가 있습니다. 예를 들어, 컴파일된 클래스 파일을 찾지 못했습니다. 클래스 경로에 액션에 대해 컴파일된 .class 파일 배치 실패(웹 개발에서 클래스 위치는 WEB-INF/classes에 있으므로 액션 클래스는 이 디렉토리에 있어야 합니다. 예를 들어 액션 클래스는 WEB에 있습니다. -INF/classes/action/Login.class, struts -config.xml에서 액션의 속성 유형을 설정할 때 action.Login입니다.

철자 오류, 이 역시 가끔 발생합니다. 첫 글자의 대소 문자와 패키지 이름에 특히주의하십시오.

 ------------------------------- ---- -------------------- ---- -----

 Exception

 javax.servlet.jsp.JspException: 사용자 이름 속성에 대한 getter 메소드가 없습니다. bean org.apache.struts.taglib.html.BEAN

가능한 이유

bean 형식의 변수에 대해 정의된 getter 메서드가 없습니다.

이 오류는 주로 다음에서 발생합니다. form에 의해 제출된 FormBean이 struts로 표시되면 FormBean에 getUsername() 메소드가 있어야 합니다. 문자 "U"에 주목하세요.

 ------------------------------- - ------------------------------------------------- - -----

 예외

 java.lang.NoClassDefFoundError: org/apache/struts/action/ActionForm

가능한 이유

이 오류는 주로 해당 Java .class 파일을 클래스 경로에서 찾을 수 없는 경우에 발생합니다. 웹 애플리케이션이 실행 중일 때 이 오류가 발생하는 경우 주로 지정된 클래스 파일이 웹 서버의 클래스 경로(/WEB-INF/classes 및 /WEB-INF/lib)에 없기 때문입니다. 위 오류의 원인은 ActionForm 클래스를 찾을 수 없기 때문입니다.

 ------------------------------- ---- -------------------- ---- -----

 Exception

 javax.servlet.jsp.JspException: 클래스 조직의 Bean을 생성하는 중 예외가 발생했습니다. apache.struts .action.ActionForm: {1}

가능한 이유

ActionForm에서 파생된 클래스를 인스턴스화하는 대신 Struts 제공 ActionForm 클래스를 직접 인스턴스화하는 경우 이는 암시적으로 발생할 수 있습니다. -bean은 form-bean에 대해 이 클래스의 하위를 지정하는 것이 아니라 이 Struts ActionForm 클래스입니다.

 ActionForm 하위 클래스를 액션과 연결하지 않으면 이 오류가 발생할 수도 있습니다.

---- -------------------- ---- -------------------- ---- ---------

 Exception

javax.servlet.jsp.JspException: ActionMappings 또는 ActionFormBeans 컬렉션을 찾을 수 없습니다

가능한 이유

Struts actionServlet을 식별하는 태그나 .do 확장자를 매핑하는 태그 또는 둘 다 web.xml에 선언되어 있지 않습니다.

struts-config.xml에 입력 또는 철자 오류로 인해 이 예외가 발생할 수도 있습니다. 예를 들어 태그의 닫는 기호 />가 없습니다. Struts 콘솔 도구를 사용하여 확인하는 것이 가장 좋습니다.

또한 웹에서는 load-on-startup을 선언해야 합니다.

시작 시 로드 사용과 관련된 또 다른 사항은 JSP 파일을 사전 컴파일하기 위해 Struts를 사용하면 이 예외가 발생할 수도 있다는 것입니다.

 ---------------------------------- - ------------------------------------------------- - ---

 Exception

 java.lang.NullPointerException at org.apache.struts.util.RequestUtils.forwardURL(RequestUtils. java :1223)

가능한 이유

struts-config.xml의 전달 요소에 경로 속성이 없습니다. 예를 들어 다음과 같은 형식이어야 합니다.


------------------------- -------- ---------------- -------- --------

 예외

javax.servlet .jsp.JspException: 모든 범위에서 Bean org.apache.struts.taglib.html.BEAN을 찾을 수 없습니다.

가능한 원인

양식 하위 요소를 사용하려고 시도하는 중 Struts 양식 태그 외부. 이는 뒤에서 Struts HTML 마크업을 사용할 때 자주 발생합니다. 또한 실수로 본문 없는 태그를 사용할 수도 있습니다. 예를 들어 웹 서버는 이를 구문 분석할 때 본문 없는 태그로 처리합니다. 이후에 사용되는 모든 태그는 이 태그 외부에 있는 것으로 간주됩니다. 본문 없는 태그. 한 가지 문제는 HTML 태그 라이브러리를 도입하기 위해 taglib를 사용할 때 사용하는 접두사 값이 html이 아니라는 것입니다.

 ------------------------------- ---- --------------------------------- ---- -----

 Exception

 javax.servlet.jsp.JspException: xx.xx 키에 대한 메시지가 없습니다. .xx

가능한 원인

이 키 값 쌍은 리소스 파일 ApplicationResources.properties에 정의되어 있지 않습니다. Eclipse를 사용할 때 이러한 상황이 자주 발생하는 경우 Eclipse는 프로젝트가 다시 컴파일될 때 클래스 디렉터리의 리소스 파일을 자동으로 삭제합니다.

리소스 파일 ApplicationResources.properties가 클래스패스에 없으면 리소스 파일은 WEB-INF/classes 디렉터리에 위치해야 하며, 당연히 struts-config.xml에 정의되어 있어야 합니다)

 ------ ---------------------------- --------- --------------- --------- --------

 Exception

  org.apache.struts.action.MESSAGE

 가능한 이유

분명히 이 오류는 리소스 파일을 사용할 때 발생하며 Struts는 리소스 파일을 찾지 못합니다.

사용할 수 없는 메시지 리소스를 암시적으로 사용하려고 합니다(예: 본문에 옵션을 지정하는 대신 빈 html:options 태그 사용 - 이는 옵션이 ApplicationResources.properties 파일에 지정되어 있다고 가정함)

XML 파서 문제 -- 너무 많음, 너무 적음, 잘못된/호환되지 않는 버전

--------------- ------------------------------------- ---------------------

 비정상

이상하고 겉으로는 HTML과 화면에는 임의의 문자가 있지만 원본 JSP나 서블릿에는 없습니다.

사용된 인코딩 스타일은 이 페이지에서 지원되지 않습니다.

 ------------------------------- ---- --------------------------------- ---- -----

 예외

 Netscape의 "문서에 데이터가 없습니다."

 아니요 Microsoft Internet Explorer의 데이터 렌더링된(완전히 비어 있는) 페이지

가능한 이유

perform() 메서드 또는 Execute() 메서드를 구현하지 않고 Action의 파생 클래스를 사용합니다. Struts1.0에 구현된 것은 Perform() 메소드이고, Struts1.1에 구현된 것은 Execute() 메소드이지만 Struts1.1은 Perform() 메소드와 하위 호환됩니다. 그러나 Struts1.1을 사용하여 Action의 파생 클래스를 생성하고 Execute() 메소드를 구현하고 이를 Struts1.0에서 실행하면 Netscape에서는 "Document contain nodata" 오류 메시지가 표시되거나 완전히 비어 있는(HTML 없음) 오류 메시지가 표시됩니다. 무엇이든) 페이지가 Microsoft Internet Explorer에서 렌더링되었습니다.

 ------------------ - ------------------------------------------------- - ------------------------------------------------- -

예외

ServletException: BeanUtils.populate

해결 방법

Struts로 파일을 업로드할 때 javax.servlet.ServletException: BeanUtils.populate 예외가 발생했습니다. >내 ActionServlet은 BeanUtils와 같은 도구 클래스를 사용하지 않습니다. 나중에 코드를 주의 깊게 확인한 결과 jsp 파일의 양식에 enctype= "multipart/form-data"를 추가하는 것을 잊어버렸으므로 프로그램을 작성할 때 오류나 예외가 발생해야 합니다. 문제의 가능성을 고려하고 시스템 프롬프트 정보가 아닌 다른 것을 생각해 보세요

 --------- -----.------------------------------- ------ ------------------ ------

 1. Action을 정의한 후 이름을 지정한 경우에는 동일한 이름의 FormBean을 정의해야 폼 매핑을 수행할 수 있습니다. 2. Action을 정의한 후 제출할 때 "매핑 경로에 대한 입력 속성이 없습니다..."라는 메시지가 나타납니다. page... " 오류가 발생하면 입력 속성에 리디렉션된 페이지를 정의해야 합니다. 3. 새 데이터를 삽입할 때 "Batch update row count잘못됨:..." 오류가 발생하는 경우 XXX에 지정된 키 유형을 의미합니다. .hbm.xml 이 유형은 자동으로 값을 할당하고 이 값으로 인해 시스템에서 레코드가 이미 존재한다고 생각하게 되므로 기본 유형(int, long)입니다. 올바른 방법은 java.lang.Integer를 사용하는 것입니다. 또는 java.lang.Long object.4 데이터를 삽입할 때 "인수 유형 불일치" 오류가 발생하면 Date와 같은 특수 객체를 사용하고 있을 수 있습니다. .5. Hibernate에서 쿼리의 iterator()는 list() 메서드보다 훨씬 빠릅니다. 6. "동일 기호 예상" 오류가 발생하면 strtus 태그에 다른 태그나 변수가 포함되어 있음을 의미합니다. , 예:


 또는

 />

  이 경우...

 --- ------- ----------------- ------- ----------------- ------- ------------

 오류: "main" 스레드의 예외 org.hibernate.Exception.SQLGrammarException: JDBC 일괄 업데이트를 실행할 수 없습니다. 원인 및 해결 방법 : Hibernate 도구(또는 자체 데이터베이스 탐색기에서 생성된 Eclipse *.hbn.xml 도구)에는 Catalog="***"(*는 데이터베이스 이름을 나타냄)와 같은 속성이 포함되어 있기 때문입니다.

이 속성을 삭제하세요. ----- ------------------- ----- ------------------- ----- -----

오류: org.hibernate.ObjectDeletedException: 삭제된 객체는 캐스케이드에 의해 다시 저장됩니다(삭제된 객체 제거 from Associations)

원인 및 해결 방법:

방법 1 Set 측 캐스케이드 삭제

방법 2 연결을 해결한 후 삭제

방법 3 다대일에서 캐스케이드를 추가하지만 값은 없음일 수 없습니다

최후의 수단:

hashCode가 id를 유일한 표시된 옵션으로 사용하는지 확인하세요. uuid를 사용할 때 문제가 없습니다. .hex; 하지만 네이티브를 사용하면 작동하지 않습니다. 삭제!

 ---------------- ------------------------------------------------ -- -------------------

질문: 오늘 Tomcat 5.5.12를 사용해서 알아냈습니다. 매우 유용한 시스템은 더 이상 사용할 수 없습니다. 반복적인 테스트를 통해 taglib를 페이지에 포함할 수 없다는 사실이 발견되었습니다. 그렇지 않으면 다음 프롬프트가 나타납니다. HTTP 상태 500 -type 예외 보고서 메시지 설명 서버에서 내부 오류()가 발생하여 이를 수행할 수 없습니다. 이 request.Exceptionorg.apache.jasper.JasperException: /index.jsp(1,1) JAR 파일 "file:*****/WEB에서 TLD "META-INF/tlds/struts-bean.tld"를 읽을 수 없습니다. -INF/lib/ struts.jar": 이유: 프로젝트의 lib 폴더에 있는 jar가 업데이트되었으며 게시 시 servlet.jar 및 jsp-api.jar도 릴리스되었습니다. 해결책: 이 문제를 해결하려면 jsp-api.jar을 삭제하십시오. ---------- -------------- - ------------------------------------------------- - -------------

오류: java.lang.NullPointerException

이유: Dao 인스턴스 발견, 관리 인스턴스 등 주입해야 할 사항이 주입되지 않습니다(일반적으로 널 포인터 예외라고 함) 해결 방법: 이때 로그 파일을 확인해야 합니다. 기본값은 애플리케이션 서버의 로그 파일입니다. 예를 들어 Tomcat은 [Tomcat 설치 디렉터리]/logs입니다. 다음과 같은 메시지가 표시됩니다. 아마도: org.springframework.beans.factory.BeanCreationException: ServletContextresource [/WEB-INF/applicationContext.xml에 정의된 이름이 'sf'인 Bean을 만드는 중 오류가 발생했습니다. ]: Bean 초기화에 실패했습니다. 중첩된 예외 isorg.hibernate.HibernateException: URL: src/hibernate.cfg.xmlorg.hibernate.HibernateException: URL: file:src/hibernate.cfg.xml에서 구성할 수 없습니다. 원인: java.io.FileNotFoundException: srchibernate.cfg.xml은 다음과 같습니다: org.springframework.beans.factory.BeanCreationException: ServletContext 리소스에 정의된 'sessionFactory' 이름으로 Bean을 생성하는 중 오류 발생 [/WEB -INF/applicationContext.xml]: Bean 초기화 실패; 중첩 예외 isorg.hibernate.MappingException: Resource: com/mcc/coupon/model/UserRole.hbm.xml not Found 그러면 이유는 오류가 있다는 것입니다. 웹 페이지를 통해 볼 수 없는 구성 파일을 구문 분석하는 중입니다. 게다가 지속성 매핑 파일의 오류로 인해 구문 분석이 불가능하므로 필요한 기능을 사용할 수 없습니다.

 ------------------------------- ---- --------------------------------- ---- ---------------------

오류: StandardWrapperValve[action] : 서블릿 작업에 대한 Servlet.service()에서 예외가 발생했습니다

javax.servlet.jsp.JspException: /settlementTypeManage

작업에 대한 매핑을 검색할 수 없습니다. 또는: 유형 상태 보고 메시지 서블릿 작업을 사용할 수 없습니다. 설명 요청한 리소스(서블릿 작업을 사용할 수 없음)를 사용할 수 없습니다.

이유 : 위와 동일

--------------------------------- -- ------------------------------------------------ -- -------------------

오류 StandardWrapperValve[jsp]: 서블릿 jsp에 대한 Servlet.service()에서 예외가 발생했습니다java.lang.ClassNotFoundException: org.apache.struts.taglib.bean.CookieTei 인터페이스 오류 관련 설명:

 org.apache. jasper.JasperException: TagExtraInfo 클래스 로드 또는 인스턴스화 실패: org.apache.struts.taglib.bean.CookieTei

원인 및 해결 방법: <옵션 1>"html:"으로 시작하는 태그가 에 배치되지 않았습니다. one ;애플리케이션 서버를 다시 시작하면 이 문제는 자동으로 사라집니다

 ---------------- --- ---------------------------------- --- ----------------------------------

java.lang.IllegalStateException: getOutputStream()이 이 응답에 대해 이미 호출되었습니다.

이유: 웹 컨테이너에서 생성된 서블릿 코드에 out.write("")가 있습니다. 1. JSP .getOutputStream() 충돌에서 호출된 응답과 동일합니다. 즉, Servlet 사양에서는 response.getOutputStream()과 response.getWriter()를 모두 호출할 수 없다고 명시하고 있습니다. 두 번째 항목이 호출되면 IllegalStateException이 발생합니다. 왜냐하면 jsp에서 out 변수는 실제로 response.getWriter를 통해 얻어지기 때문입니다. 프로그램에서 response.getOutputStream과 out 변수를 모두 사용하므로 위의 오류가 발생합니다.

2. jsp 컨테이너는 요청을 처리한 후 사용된 PageContext 객체를 해제하기 위해 releasePageContet 메소드를 호출하고 getWriter 메소드도 호출하므로 getWriter 메소드는 스트림 사용과 관련된 getOutputStream 메소드와 충돌합니다. jsp 페이지를 사용하면 이 예외가 발생합니다

해결 방법:

// 이미지를 페이지에 출력합니다.

ImageIO.write(image, "JPEG", response.getOutputStream( ));

문장 2개 추가

out.clear();

// 의미: 캐시된 콘텐츠 지우기

out = pageContext.pushBody( ) ;

// 새 BodyContent 반환(HTML 페이지의 BODY 부분을 나타냄)

// JspWriter 인스턴스의 객체를 저장합니다.

// 업데이트 out of PageContext 속성의 내용

 -------------------------------------- ---- --------------------------------- ---- ---------------------

 잘못된 번호

원인: 프로젝트 버전이 JDK 버전과 호환되지 않습니다

해결책: windows-preferences-server-Integrated Sandbox-Myeclise tomcat 6-프로젝트 버전과 일치하는 JDK를 선택하세요

-------- ---------------- -------- ---------------- -------- ---

Peer에 의한 연결 재설정 원인: 소켓 쓰기 오류 문제

이 문제는 일반적으로 클라이언트가 완전히 연결되지 않아 발생합니다. 연결이 설정되면 연결이 취소됩니다. 예를 들어 사용자가 브라우저에서 "중지" 버튼을 누르면 일반적으로 문제가 없습니다. 하지만 자주 나타나는 경우에는 Apache 서버에 연결하는 많은 클라이언트의 응답 시간이 너무 길다는 의미입니다. 네트워크 문제이거나 서버 성능 문제일 수 있습니다

네트워크 연결에 문제가 있을 수 있습니다. 때로는 너무 오래 기다리기 때문에 발생할 수도 있지만 서버 세그먼트에 설정된 연결 확인 시간 제한이 확실할 경우 이러한 상황이 발생할 수 있습니다.

하지만 더 일반적인 이유는 다음과 같습니다. 🎜>

1 : 서버의 동시 연결 수가 처리 용량을 초과하여 서버가 일부 연결을 중단합니다.

2: 클라이언트가 브라우저를 닫았지만 서버는 여전히 작동 중입니다.

3: 브라우저에서 중지를 누릅니다.

4: 클라이언트에 대한 서버의 응답이 방화벽에 의해 차단되었습니다.


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
이전 기사:자바 동시성다음 기사:자바 동시성