【问题标题】:HTTP Status 500HTTP 状态 500
【发布时间】:2011-01-01 22:22:39
【问题描述】:

我想使用 netbean 6.5、glassfish V 2 制作 Restful - Web 服务,并且我已经制作了表格和表格之间的关系。但是当我想测试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.

但有些表正在工作。有人知道导致此问题的原因以及如何处理此问题吗?谢谢。

感谢 Andrew Medico 和 Jim Ferrans

我将所有电子邮件都更改为电子邮件。而且我不会忘记不再在数据库中添加“-”。谢谢

【问题讨论】:

    标签: java netbeans rest


    【解决方案1】:

    您的 SQL 查询(“电子邮件”)中有一个非法标识符。如果这是实际的列名,Andrew 的建议是正确的解决方案。不过,您可能在查询中拼错了。

    【讨论】:

    • 你的意思是我必须把电子邮件换成别的东西?
    • 这取决于您的列名在 SQL 模式中的真正含义。例如,如果它是“E_mail”,那么您只需要修复查询中的拼写即可。
    【解决方案2】:

    您需要引用“E-mail”列名,以便 SQL 解析器接受它。未加引号/转义的破折号是 SQL 中的减法运算符,因此未加引号的“电子邮件”表示您正在向 SQL 服务器询问减去名为“E”和“邮件”的列的结果。

    正确的 SQL 应该是:

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

    【讨论】:

    • 注意反引号转义是一种非标准的 MySQL 主义。根据 ANSI SQL,应该使用双引号。这种行为可以通过设置 ANSI_QUOTES SQL_MODE 来获得。
    猜你喜欢
    • 2014-01-08
    • 2012-12-04
    • 2017-11-01
    • 2016-05-29
    • 2015-05-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多