在 CXF Web 服务消息中仅发送需要的命名空间
Sending only needed namespaces in CXF web services messages
我将 CXF 用于 Web 服务服务器。
我在服务器上有很多命名空间。
每次处理请求而不是仅将相关名称空间用于答案时,所有服务器的名称空间都将转储到 soap 答案中,即使答案数据中不需要其中的大多数。
例如:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns61:Response
xmlns:ns125="http://www.example.com/example125/Example125"
xmlns:ns124="http://www.example.com/example124/Example124"
xmlns:ns123="http://www.example.com/example123/Example123"
xmlns:ns122="http://www.example.com/example122/Example122"
xmlns:ns121="http://www.example.com/example121/Example121"
...
xmlns:ns1="http://www.example.com/example1/Example1"
有没有办法强制 CXF 只将需要的命名空间添加到 soap 答案中?
可能与以下相关:JAXB lists namespaces in root element
由于 CXF 使用 JAXB 进行 XML 序列化,并且根据上面的信息 link 似乎没有一种简单的方法可以在不编写昂贵的拦截器的情况下完成这样的事情需要阅读整个文档并删除多余的命名空间。
我将 CXF 用于 Web 服务服务器。
我在服务器上有很多命名空间。
每次处理请求而不是仅将相关名称空间用于答案时,所有服务器的名称空间都将转储到 soap 答案中,即使答案数据中不需要其中的大多数。
例如:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns61:Response
xmlns:ns125="http://www.example.com/example125/Example125"
xmlns:ns124="http://www.example.com/example124/Example124"
xmlns:ns123="http://www.example.com/example123/Example123"
xmlns:ns122="http://www.example.com/example122/Example122"
xmlns:ns121="http://www.example.com/example121/Example121"
...
xmlns:ns1="http://www.example.com/example1/Example1"
有没有办法强制 CXF 只将需要的命名空间添加到 soap 答案中?
可能与以下相关:JAXB lists namespaces in root element
由于 CXF 使用 JAXB 进行 XML 序列化,并且根据上面的信息 link 似乎没有一种简单的方法可以在不编写昂贵的拦截器的情况下完成这样的事情需要阅读整个文档并删除多余的命名空间。