Java JAXMServlet的替代品?
我正在维护一个应用程序,该应用程序具有扩展javax.xml.messaging.JAXMServlet的类(编写于2005年)。在升级到实现最新J2EE标准的新应用服务器时,我发现jwsdp2.0(javaweb服务开发包)中删除了JAXMServlet(显然JWSDP本身也被删除了)。它所依赖的代码自编写以来没有显著变化,并且是一个大型ish现有生产系统的一部分,在该系统中,该代码已经过测试和调试,因此由于回归测试的影响,我不愿意从头重写这些类Java JAXMServlet的替代品?,java,web-services,jaxm,Java,Web Services,Jaxm,我正在维护一个应用程序,该应用程序具有扩展javax.xml.messaging.JAXMServlet的类(编写于2005年)。在升级到实现最新J2EE标准的新应用服务器时,我发现jwsdp2.0(javaweb服务开发包)中删除了JAXMServlet(显然JWSDP本身也被删除了)。它所依赖的代码自编写以来没有显著变化,并且是一个大型ish现有生产系统的一部分,在该系统中,该代码已经过测试和调试,因此由于回归测试的影响,我不愿意从头重写这些类 这门课有“简单”的替代品吗?尽管谷歌有很多使用
这门课有“简单”的替代品吗?尽管谷歌有很多使用这段代码的例子(日期大约在2003-2004年),但它对替换这段代码却出人意料地保持沉默。谢谢。为什么要更换它?为什么不找到相关的库并使用它们呢
为什么要更换它?为什么不找到相关的库并使用它们呢
要回答我自己的问题,请在以下位置找到一些替换代码:
import java.io.ByteArrayInputStream;
导入java.net.MalformedURLException;
导入java.net.URL;
导入java.util.Enumeration;
导入java.util.Iterator;
导入java.util.StringTokenizer;
导入javax.activation.DataHandler;
导入javax.servlet.http.HttpServletRequest;
导入javax.servlet.http.HttpServletResponse;
导入javax.xml.soap.AttachmentPart;
导入javax.xml.soap.MimeHeader;
导入javax.xml.soap.MimeHeaders;
导入javax.xml.soap.SOAPException;
导入javax.xml.soap.SOAPMessage;
公共类SaajUtils{
/**
*从HTTP请求中提取MIME头信息
*@param请求http请求
*@return MimeHeaders,如SAAJ API中所定义
*/
公共静态MimeHeaders getHeaders(HttpServletRequest-req){
枚举en=req.getHeaderNames();
MimeHeaders=新的MimeHeaders();
while(en.hasMoreElements()){
字符串头名称=(字符串)en.nextElement();
字符串headerValue=req.getHeader(headerName);
StringTokenizer值=新的StringTokenizer(headerValue,“,”);
while(values.hasMoreTokens()){
headers.addHeader(headerName,values.nextToken().trim());
}
}
返回标题;
}
/**
*将MIME头填充到HTTP响应中
*@param头SAAJ MIME头
*@param res Http servlet响应
*/
公共静态void putHeaders(MimeHeaders、HttpServletResponse){
for(迭代器it=headers.getAllHeaders();it.hasNext();){
MimeHeader header=it.next();
字符串[]值=headers.getHeader(header.getName());
如果(values.length==1){
res.setHeader(header.getName(),header.getValue());
}
否则{
StringBuffer concat=新的StringBuffer();
对于(int i=0;i
要回答我自己的问题,请在以下位置找到一些替换代码:
import java.io.ByteArrayInputStream;
导入java.net.MalformedURLException;
导入java.net.URL;
导入java.util.Enumeration;
导入java.util.Iterator;
导入java.util.StringTokenizer;
导入javax.activation.DataHandler;
导入javax.servlet.http.HttpServletRequest;
导入javax.servlet.http.HttpServletResponse;
导入javax.xml.soap.AttachmentPart;
导入javax.xml.soap.MimeHeader;
导入javax.xml.soap.MimeHeaders;
导入javax.xml.soap.SOAPException;
导入javax.xml.soap.SOAPMessage;
公共类SaajUtils{
/**
*从HTTP请求中提取MIME头信息
*@param请求http请求
*@return MimeHeaders,如SAAJ API中所定义
*/
公共静态MimeHeaders getHeaders(HttpServletRequest-req){
枚举en=req.getHeaderNames();
MimeHeaders=新的MimeHeaders();
while(en.hasMoreElements()){
字符串头名称=(字符串)en.nextElement();
字符串headerValue=req.getHeader(headerName);
StringTokenizer值=新的StringTokenizer(headerValue,“,”);
while(values.hasMoreTokens()){
headers.addHeader(headerNa
import java.io.ByteArrayInputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.Enumeration;
import java.util.Iterator;
import java.util.StringTokenizer;
import javax.activation.DataHandler;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.soap.AttachmentPart;
import javax.xml.soap.MimeHeader;
import javax.xml.soap.MimeHeaders;
import javax.xml.soap.SOAPException;
import javax.xml.soap.SOAPMessage;
public class SaajUtils {
/**
* extract the MIME header information from within the HTTP Request
* @param req the http request
* @return MimeHeaders as defined within the SAAJ API
*/
public static MimeHeaders getHeaders( HttpServletRequest req ) {
Enumeration<String> en = req.getHeaderNames();
MimeHeaders headers = new MimeHeaders();
while( en.hasMoreElements() ) {
String headerName = (String) en.nextElement();
String headerValue = req.getHeader( headerName );
StringTokenizer values = new StringTokenizer( headerValue, "," );
while( values.hasMoreTokens() ) {
headers.addHeader( headerName, values.nextToken().trim() );
}
}
return headers;
}
/**
* stuff the MIME headers into the HTTP response
* @param headers the SAAJ MIME headers
* @param res the Http servlet response
*/
public static void putHeaders( MimeHeaders headers, HttpServletResponse res ) {
for( Iterator<MimeHeader> it = headers.getAllHeaders(); it.hasNext(); ) {
MimeHeader header = it.next();
String[] values = headers.getHeader( header.getName() );
if( values.length == 1 ) {
res.setHeader( header.getName(), header.getValue() );
}
else {
StringBuffer concat = new StringBuffer();
for( int i = 0; i < values.length; i++ ) {
if( i != 0 ) {
concat.append( ',' );
}
concat.append( values[i] );
}
res.setHeader( header.getName(), concat.toString() );
}
}
}
public static void attachBytes( SOAPMessage soapMessage, byte[] theBytes, String contentType )
throws SOAPException {
AttachmentPart attachment = soapMessage.createAttachmentPart();
attachment.setContent( new ByteArrayInputStream( theBytes ), contentType );
soapMessage.addAttachmentPart( attachment );
}
public static void attachUrlContents( SOAPMessage soapMessage, String urlLocation, String contentType )
throws SOAPException, MalformedURLException {
URL url = new URL( urlLocation );
AttachmentPart attachment = soapMessage.createAttachmentPart( new DataHandler( url ) );
attachment.setContentType( contentType );
soapMessage.addAttachmentPart( attachment );
}
public static String getAttachmentReport( SOAPMessage soapMessage ) throws SOAPException {
int numOfAttachments = soapMessage.countAttachments();
Iterator<AttachmentPart> attachments = soapMessage.getAttachments();
StringBuffer buf = new StringBuffer( "Number of attachments: " );
buf.append( numOfAttachments );
while( attachments.hasNext() ) {
buf.append( "\n--------------------------------------------\n" );
AttachmentPart attachment = attachments.next();
buf.append( "\nContent Location: " + attachment.getContentLocation() );
buf.append( "\nContent Id: " + attachment.getContentId() );
buf.append( "\nContent Size: " + attachment.getSize() );
buf.append( "\nContent Type: " + attachment.getContentType() );
}
return buf.toString();
}
}