我用如下方法转换word到html,
环境:Eclipse版本是3.1
MyEclipse版本是4.0
Tomcat是4.1
JDK是1.4
public static void wordToHTML(String inFile, String outFile) {
// 启动word
ActiveXComponent app = new ActiveXComponent( "Word.Application ");
try {
app.setProperty( "Visible ", new Variant(false));
// 设置word不可见
Object docs = app.getProperty( "Documents ").toDispatch();
Object doc = Dispatch.invoke(docs, "Open ",Dispatch.Method,
new Object[] { inFile, new Variant(false),
new Variant(true) }, new int[1]).toDispatch();
// 打开word文件
Dispatch.invoke(doc, "SaveAs ", Dispatch.Method, new Object[] {
outFile, new Variant(8) }, new int[1]);
// 作为html格式保存到临时文件
Variant f = new Variant(false);
Dispatch.call(doc, "Close ", f);
} catch (Exception e) {
e.printStackTrace();
} finally {
app.invoke( "Quit ", new Variant[] {});
}
}
问题是:这个方法在Eclipse下用Java程序运行,没有错误,用Eclipse压缩成War放到Tomcat下运行也正常,但是在Eclipse下运行tomcat就不行了,开始出现的是找不到Struts源代码,我到网站下了一个,链接后指向了如下的一个异常:
public InvocationTargetException(Throwable target) {
super((Throwable)null); // Disallow initCause
this.target = target;
}
高手帮忙分析下吧,实在不明白,到底是那里不对?
------解决方案--------------------
不懂,帮顶
------解决方案--------------------
Object docs = app.getProperty( "Documents ").toDispatch();
Object doc = Dispatch.invoke(docs, "Open ",Dispatch.Method,new Object[] { inFile, new Variant(false),new Variant(true) }, new int[1]).toDispatch();
把他们的object类型改成Dispatch就OK了。