2010-01-06 5 views
0

netbean 6.5, glassfish V2를 사용하여 웹 서비스를 만들고 싶습니다. 이미 테이블과 테이블 간의 관계를 만듭니다. 그러나 내가 편안하게 Webservice를 시험해보고 싶다면 어떤 테이블이 보여줄 때HTTP 상태 500

HTTP Status 500 - 

type Exception report 

message 

descriptionThe server encountered an internal error() that prevented it from fulfilling this request. 

exception 

Exception [TOPLINK-4002] (Oracle TopLink Essentials - 2.0.1 (Build b04-fcs (04/11/2008))): oracle.toplink.essentials.exceptions.DatabaseException 
Internal Exception: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Unknown column 'E' in 'field list' 
Error Code: 1054 
Call: SELECT Id, MobileNumber, Country, First_Name, E-mail, Address, Identity, Zip, Last_name, City, State, Position FROM employee_table WHERE (Id = ?) 
    bind => [1] 
Query: ReadObjectQuery(ws.EmployeeTable) 

note The full stack traces of the exception and its root causes are available in the Sun Java System Application Server 9.1_02 logs. 

약간의 테이블이 작동하고있다. 누군가이 문제의 원인과이 문제를 처리하는 방법을 알고 있습니까? 고마워. 앤드류 메디, 짐 Ferrans

내가 이메일에 내 모든 이메일을 변경하려면

들으. DB에 "-"를 다시 추가하는 것을 잊지 않을 것입니다. thx

답변

1

"전자 메일"열 이름을 인용하여 SQL 파서가이를 허용해야합니다. 따옴표로 묶지 않은/이스케이프 처리 된 대시는 SQL의 빼기 연산자이므로 "전자 메일"을 지정하지 않으면 "E"및 "메일"이라는 열을 뺀 결과를 SQL 서버에 요청합니다.

적절한 SQL은 다음과 같습니다

SELECT Id, MobileNumber, Country, First_Name, `E-mail`, Address, Identity, Zip, Last_name, City, State, Position FROM employee_table WHERE (Id = ?) 
+0

Thx 이제 작동 중입니다. 모든 전자 메일을 전자 메일로 변경 한 후 – Huuhaacece

+0

backtick-escaping은 비표준 MySQLism입니다. ANSI SQL에 따르면 큰 따옴표를 사용해야합니다. 이 동작은 ANSI_QUOTES SQL_MODE를 설정하여 얻을 수 있습니다. – bobince

1

SQL 쿼리 ("전자 메일")에 잘못된 식별자가 있습니다. 앤드류 (Andrew)의 말은 실제로 열 이름 인 경우 적절한 해결책입니다. 당신은 질문에 잘못 철자했을 수도 있습니다.

+0

당신은 내가 뭔가에 이메일을 변경해야합니다 무엇을 의미? – Huuhaacece

+0

SQL 스키마에서 실제로 컬럼 이름이 무엇인지에 따라 다릅니다. 예를 들어 "E_mail"인 경우 검색어에 맞춤법을 수정하면됩니다. –