cuốn sách gpt4 ai đã làm

JAXB ghi vào OutputStream trong phương thức writeTo

In lại Tác giả: Vũ trụ không gian Thời gian cập nhật: 2023-11-04 08:43:13 26 4
mua khóa gpt4 Nike

Tôi đã cố gắng viết một chuỗi trực tiếp vào OutputStream trong phương thức triển khai writeTo của giao diện MessageBodyWriter. Tôi muốn thực hiện việc này bên trong khối thử bắt để khi bắt gặp ngoại lệ, một tin nhắn sẽ được gửi. Tuy nhiên, khi tôi gỡ lỗi chương trình, tôi nhận ra rằng chuỗi đó không bao giờ được ghi vào OutputStream (size = -1).

代码看起来像这样:

public void writeTo(Đối tượng thực thể cuối cùngObject, Lớp cuối cùng aClass, loại Loại cuối cùng,
chú thích Annotation[] cuối cùng, MediaType mediaType cuối cùng,
bản đồ đa giá trị cuối cùng stringObjectMultivaluedMap,
cuối cùng OutputStream outStream) ném IOException, WebApplicationException {
try{
ném JAXBException mới ("lỗi");
}bắt(JAXBException j){
outStream.write("HI".getBytes());
outStream.flush();
}

câu trả lời hay nhất

câu trả lời mới

Bạn có thể sử dụng Tin nhắnBodyWriter TRONG viết vào WebApplicationException được phương thức ném ra.

public void writeTo(DataObject dataObject, Class type, Type genericType, Annotation[] chú thích, MediaType mediaType, MultivaluedMap multivaluedMap, OutputStream đầu raStream) ném IOException, WebApplicationException {
thử {
ném JAXBException mới ("lỗi");
} bắt(JAXBException e) {
Phản hồi phản hồi = Response.status(Response.Status.INTERNAL_SERVER_ERROR)
.entity("HI")
.type("text/plain")
.xây dựng();
ném WebApplicationException mới (phản hồi);
}
}

原始答案

Theo tôi, tốt hơn hết bạn nên ném JAXBException khỏi MessageBodyWriter và sau đó tạo ExceptionMapper để ghi lại sự cố:

@Nhà cung cấp
lớp công khai JAXBExceptionMapper triển khai ExceptionMapper {

Phản hồi công khai tớiResponse(JAXBException e) {
trả về Response.status(Response.Status.INTERNAL_SERVER_ERROR)
.entity(e.getMessage());
.type("text/plain").build();
}

}

Điều này sẽ cho phép bạn trả về mã phản hồi cho biết đã xảy ra sự cố.

Về java - JAXB ghi vào OutputStream trong phương thức writeTo, chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/4855575/

26 4 0
không gian vũ trụ
Hồ sơ

Tôi là một lập trình viên xuất sắc, rất giỏi!

Nhận phiếu giảm giá taxi Didi miễn phí
Phiếu giảm giá taxi Didi
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress