HTTP状态500

时间:2010-01-06 04:47:21

标签: java netbeans rest

我想使用netbean 6.5,glassfish V 2制作Restful - Web Service,我已经制作了表和表之间的关系。但是,当我想测试restful Webservice时,它会显示一些表

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.

但有些表正在运作。有人知道导致这个问题的原因以及如何处理这个问题? THX。

感谢Andrew Medico和Jim Ferrans

我将所有电子邮件都更改为电子邮件。我不会忘记不再在DB中添加“ - ”。 THX

2 个答案:

答案 0 :(得分:1)

您在SQL查询(“电子邮件”)中有一个非法标识符。安德鲁建议引用它是正确的解决方案,如果这是实际的列名称。您可能在查询中拼写错误。

答案 1 :(得分:1)

您需要引用“电子邮件”列名称,以便SQL解析器接受它。不带引号/转义的短划线是SQL中的减法运算符,因此“电子邮件”不加引号意味着您要求SQL服务器减去名为“E”和“mail”的列的结果。

正确的SQL将是:

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