Java SIP Servlets:SipServletRequest getcontent作为xml

Java SIP Servlets:SipServletRequest getcontent作为xml,java,sip,user-presence,sip-servlet,Java,Sip,User Presence,Sip Servlet,我正在使用SIPServletsAPI在SIPSimple上进行POC 在PublishRequest中,我想读取已发布XML的内容。 我知道请求的内容类型是application/pidf+xml。但我无法将其转换为XML,我不知道哪个类处理这个问题,当我试图找出对象的类名时,它也会返回一些值,如[B protected void doPublish(SipServletRequest req) throws ServletException, IOException

我正在使用SIPServletsAPI在SIPSimple上进行POC

在PublishRequest中,我想读取已发布XML的内容。 我知道请求的内容类型是application/pidf+xml。但我无法将其转换为XML,我不知道哪个类处理这个问题,当我试图找出对象的类名时,它也会返回一些值,如[B

protected void doPublish(SipServletRequest req) throws ServletException,
            IOException {
        // TODO Auto-generated method stub
        super.doPublish(req);       
        Object o = req.getContent();
        System.out.println("ContentType "+req.getContentType());
        System.out.println("Class "+o.getClass().getName());
    }
请告诉我如何将返回的对象转换为XML。我真的很难找到正确的方法

谢谢

我的解决方案: 不知道这是一个解决方案还是一个变通方法,但以下是我所做的:

byte[] o = (byte[]) req.getContent();
String s = new String(o);
System.out.println("Class type "+s);
byte[] o = (byte[]) req.getContent();
String s = new String(o);
System.out.println("Class type "+s);
因此,s现在有了可以转换为XML的XML字符串

如果有更好的解决方案,请发帖子


谢谢

我不知道这是一个解决方案还是一个变通办法,但下面是我所做的:

byte[] o = (byte[]) req.getContent();
String s = new String(o);
System.out.println("Class type "+s);
byte[] o = (byte[]) req.getContent();
String s = new String(o);
System.out.println("Class type "+s);
因此,s现在有了可以转换为XML的XML字符串

如果有更好的解决方案,请发帖子


谢谢

这是一个好的开始,但对于一般解决方案,您需要在获取XML之前删除任何MIME头,如果它是SDP的多部分,您还需要删除可能位于PIDF之前的SDP部分