出现意外错误类型 = 内部服务器错误,状态 = 500

Posted

技术标签:

【中文标题】出现意外错误类型 = 内部服务器错误,状态 = 500【英文标题】:There was an unexpected error type=Internal Server Error, status=500 【发布时间】:2020-10-18 08:34:22 【问题描述】:

大家好,我在函数中添加以下行时出现错误 500:

Ticket ti = ticketRepository.findOneById(idtick);

或者这个:

Ticket ti = ticketRepository.findById(idtick).get();

它们都不起作用,这是我的功能:

@GetMapping(path = "/tickets")
public String tickets(Model model, Long idp, 
        @RequestParam(name = "page", defaultValue = "0") int page,
        @RequestParam(name = "size", defaultValue = "8") int size,
        @RequestParam(name = "idtick", defaultValue = "0") Long idtick) 
    
    Ticket t = new Ticket();
    if(idtick!=0) 
        System.out.println("ID Ticket : "+idtick);
        Ticket ti = ticketRepository.findOneById(idtick);
        System.out.println(ti);
    
    //Projection p = projectionRepository.findOneById(idp);
    model.addAttribute("ticket", t);
    Projection p = projectionRepository.findOneById(idp);
    Page<Ticket> tickets = ticketRepository.findByProjection(p, PageRequest.of(page, size));
    model.addAttribute("idprojection", idp);
    model.addAttribute("tickets", tickets);
    model.addAttribute("page", page);
    model.addAttribute("films", tickets.getContent());
    model.addAttribute("pages", new int[tickets.getTotalPages()]);
    model.addAttribute("currentPage", page);
    model.addAttribute("idtick", idtick);
    model.addAttribute("size", size);
    return "tickets";

这里是 Ticket 类:

@Entity
@Data @NoArgsConstructor @AllArgsConstructor
public class Ticket 
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    @Column(length=75)
    private String nomClient;
    private double prix;
    //@Column(unique = true, nullable=true)
    @Column(unique = false,nullable=true)
    private Integer codePayement;
    private boolean reserve;
    @ManyToOne
    private Place place;
    @ManyToOne
    private Projection projection;

及ticketRepository的代码:

@RepositoryRestResource
@CrossOrigin("*")
public interface TicketRepository extends JpaRepository<Ticket, Long> 
    public Ticket findOneById(Long id);

这是堆栈跟踪:

java.lang.***Error: null at java.lang.AbstractStringBuilder.ensureCapacityInternal(Unknown Source) ~[na:1.8.0_251] at java.lang.AbstractStringBuilder.append(Unknown Source) ~[na:1.8.0_251]在 java.lang.StringBuilder.append(Unknown Source) ~[na:1.8.0_251] at sun.misc.FloatingDecimal$BinaryToASCIIBuffer.appendTo(Unknown Source) ~[na:1.8.0_251] at sun.misc.FloatingDecimal.appendTo (未知来源)~[na:1.8.0_251] 在 java.lang.AbstractStringBuilder.append(未知来源)~[na:1.8.0_251] 在 java.lang.StringBuilder.append(未知来源)~[na:1.8。 0_251]

谁能告诉我怎么了? 提前致谢。

【问题讨论】:

您是否在构造函数中自动装配ticketRepository?你得到了什么例外? 你能显示你的 Ticket class 和 ticketRepository 吗? 是的,我为ticketRepository 做了@Authowired,我现在将添加ticket 类和存储库的代码,谢谢 实际错误是什么?提供日志。 我认为这是您的存储库类中的方法签名或实体上缺少表名的问题,正在记录什么错误消息? 【参考方案1】:

这是无限循环的症状。如果ProjectionPlace 类包含Ticket 元素,则Lombok 在尝试为这些类生成方法时会运行到无限递归循环中。检查您的代码是否有其他类似的循环依赖项。见:Lombok - java.lang.***Error: null on toString method

【讨论】:

是的,他们都有收集票,我会看到谢谢你的回答 就是这样,Ticket 上的toString 调用了PlaceProjection 上的toString,它们都调用了Ticket 上的toString,它们都调用了.. . 堆栈溢出【参考方案2】:

你能不能从实体类中删除@Data、@NoArgConstrucor、@AllArgConstructor 并明确添加东西。你在错误的地方定义了CrossOrigin。您是否在类路径中包含了 spring-data-jpa-repository jar?这个实体类是否被扫描,否则你必须明确地使用@EnableJpaReposiry。由于 JPA 生成的 SQL 查询是什么。你的数据库起来了吗?在调试模式下运行您的应用程序,这会很有帮助。

【讨论】:

以上是关于出现意外错误类型 = 内部服务器错误,状态 = 500的主要内容,如果未能解决你的问题,请参考以下文章

Spring 问题:出现意外错误(类型=未找到,状态=404)

(类型=内部服务器错误,状态=500)。未找到类型返回值的转换器:com.test.SearchVO 类

删除操作返回错误:出现意外错误(类型=禁止,状态=403)。禁止的

Spring @RestController,spring-boot 出现意外错误(类型=不可接受,状态=406)

OSX Server Xcode CI 服务意外的内部服务器错误

如何解决语法错误、意外令牌、导出类型?