Android在3.1上创建XML
我使用SDK 12得到这个错误Android在3.1上创建XML,android,xml,transformer,Android,Xml,Transformer,我使用SDK 12得到这个错误 Caused by: org.apache.xml.serializer.utils.WrappedRuntimeException: Could not load the propery file 'output_xml.properties' for output method 'xml' (check CLASSPATH) 我的活动中的第175行是Transformer trans=transfac.newTransformer() 07-18 10:32
Caused by: org.apache.xml.serializer.utils.WrappedRuntimeException: Could not load the propery file 'output_xml.properties' for output method 'xml' (check CLASSPATH)
我的活动中的第175行是Transformer trans=transfac.newTransformer()代码>
07-18 10:32:41.695:错误/AndroidRuntime(12864):致命异常:AsyncTask#1
07-18 10:32:41.695:错误/AndroidRuntime(12864):java.lang.RuntimeException:执行doInBackground()时出错
07-18 10:32:41.695:ERROR/AndroidRuntime(12864):在android.os.AsyncTask$3.done(AsyncTask.java:266)
07-18 10:32:41.695:ERROR/AndroidRuntime(12864):在java.util.concurrent.FutureTask$Sync.innerSetException(FutureTask.java:273)
07-18 10:32:41.695:ERROR/AndroidRuntime(12864):位于java.util.concurrent.FutureTask.setException(FutureTask.java:124)
07-18 10:32:41.695:ERROR/AndroidRuntime(12864):位于java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:307)
07-18 10:32:41.695:ERROR/AndroidRuntime(12864):位于java.util.concurrent.FutureTask.run(FutureTask.java:137)
07-18 10:32:41.695:ERROR/AndroidRuntime(12864):位于java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1081)
07-18 10:32:41.695:ERROR/AndroidRuntime(12864):位于java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:574)
07-18 10:32:41.695:ERROR/AndroidRuntime(12864):在java.lang.Thread.run(Thread.java:1020)处
07-18 10:32:41.695:错误/AndroidRuntime(12864):原因:org.apache.xml.serializer.utils.WrappedRuntimeException:无法加载输出方法“xml”(检查类路径)的属性文件“output_xml.properties”
07-18 10:32:41.695:ERROR/AndroidRuntime(12864):位于org.apache.xml.serializer.OutputPropertiesFactory.getDefaultMethodProperties(OutputPropertiesFactory.java:322)
07-18 10:32:41.695:ERROR/AndroidRuntime(12864):位于org.apache.xalan.templates.OutputProperties.(OutputProperties.java:83)
07-18 10:32:41.695:ERROR/AndroidRuntime(12864):位于org.apache.xalan.transformer.TransformerIdentityImpl.(TransformerIdentityImpl.java:88)
07-18 10:32:41.695:ERROR/AndroidRuntime(12864):位于org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFactoryImpl.java:823)
07-18 10:32:41.695:ERROR/AndroidRuntime(12864):位于jpl.test.AndroidserverActivity.generateXML(AndroidserverActivity.java:175)
07-18 10:32:41.695:ERROR/AndroidRuntime(12864):位于jpl.test.AndroidserverActivity$GetXML.doInBackground(AndroidserverActivity.java:63)
07-18 10:32:41.695:ERROR/AndroidRuntime(12864):位于jpl.test.AndroidserverActivity$GetXML.doInBackground(AndroidserverActivity.java:1)
07-18 10:32:41.695:ERROR/AndroidRuntime(12864):位于android.os.AsyncTask$2.call(AsyncTask.java:252)
07-18 10:32:41.695:ERROR/AndroidRuntime(12864):位于java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:305)
这是我的密码:
public class AndroidserverActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
GetXML xml = new GetXML();
xml.execute();
}
private class GetXML extends AsyncTask<String, Integer, String>
{
protected String doInBackground(String... conn)
{
String UID = "iPAD-CN5-DSS25-AC25";
try
{
String xml = generateXML("AC25", "/fa/gdscc/dss25-apc", UID);
if (send("localhost", xml))
getData(UID);
else
System.out.println("False");
}
catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (XPathExpressionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
public static String generateXML(String conn, String funcAddr, String UID) throws ParserConfigurationException, SAXException,
IOException, XPathExpressionException, TransformerException
{
String url = getXML("0", conn);
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(true); // never forget this!
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document doc = XMLfromString(url);
XPath xpath = XPathFactory.newInstance().newXPath();
XPathExpression expr = xpath.compile("/SubscrProf/DataItem/DataItemName");
Object result = expr.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
//build xml
Document output = builder.newDocument();
//create root
org.w3c.dom.Element root = output.createElement("JMSMON2Req");
output.appendChild(root);
//create subitem
org.w3c.dom.Element subItemNode = output.createElement("SubItem");
subItemNode.setAttribute("UID", UID);
root.appendChild(subItemNode);
//create funcAddr
org.w3c.dom.Element funcAddrNode = output.createElement("FuncAddr");
Text text = output.createTextNode(funcAddr);
funcAddrNode.appendChild(text);
subItemNode.appendChild(funcAddrNode);
//create itemname
for (int i = 0; i < nodes.getLength(); i++)
{
org.w3c.dom.Element itemNameNode = output.createElement("ItemName");
text = output.createTextNode(nodes.item(i).getTextContent());
itemNameNode.appendChild(text);
subItemNode.appendChild(itemNameNode);
}
//create metadata uid
org.w3c.dom.Element metaDataNode = output.createElement("Metadata");
metaDataNode.setAttribute("key", "UID");
text = output.createTextNode(UID);
metaDataNode.appendChild(text);
subItemNode.appendChild(metaDataNode);
//create metadata conn
org.w3c.dom.Element metaDataNode2 = output.createElement("Metadata");
metaDataNode2.setAttribute("key", "CONN");
text = output.createTextNode("5");
metaDataNode2.appendChild(text);
subItemNode.appendChild(metaDataNode2);
/////////////////
//Output the XML
//set up a transformer
TransformerFactory transfac = TransformerFactory.newInstance();
Transformer trans = transfac.newTransformer();
trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
trans.setOutputProperty(OutputKeys.INDENT, "yes");
//create string from xml tree
StringWriter sw = new StringWriter();
StreamResult out = new StreamResult(sw);
DOMSource source = new DOMSource(output);
trans.transform(source, out);
return URLEncoder.encode("req", "UTF-8") + "=" + URLEncoder.encode(sw.toString(), "UTF-8");
}
公共类AndroidserverActivity扩展活动{
/**在首次创建活动时调用*/
@凌驾
创建时的公共void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
GetXML=新的GetXML();
execute();
}
私有类GetXML扩展异步任务
{
受保护的字符串背景(字符串…连接)
{
字符串UID=“iPAD-CN5-DSS25-AC25”;
尝试
{
字符串xml=generateXML(“AC25”,“/fa/gdscc/dss25 apc”,UID);
if(发送(“localhost”,xml))
获取数据(UID);
其他的
System.out.println(“假”);
}
捕获(格式错误){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(XPathExpressionException e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(IOE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(ParserConfiguration异常e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(SAXE异常){
//TODO自动生成的捕捉块
e、 printStackTrace();
}捕获(转换异常e){
//TODO自动生成的捕捉块
e、 printStackTrace();
}
返回null;
}
}
公共静态字符串generateXML(字符串连接、字符串funcAddr、字符串UID)抛出ParserConfiguration异常、SAXException、,
IOException、XPathExpressionException、TransformerException
{
字符串url=getXML(“0”,conn);
DocumentBuilderFactory domFactory=DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(true);//永远不要忘记这一点!
DocumentBuilder=domFactory.newDocumentBuilder();
文档doc=XMLfromString(url);
XPath=XPathFactory.newInstance().newXPath();
XPathExpression expr=xpath.compile(“/SubscrProf/DataItem/DataItemName”);
Object result=expr.evaluate(doc,XPathConstants.NODESET);
节点列表节点=(节点列表)结果;
//构建xml
文档输出=builder.newDocument();
//创建根
org.w3c.dom.Element root=output.createElement(“JMSMON2Req”);
output.appendChild(根);
//创建子项
org.w3c.dom.Element subItemNode=output.createElement(“SubItem”);
setAttribute(“UID”,UID);
appendChild(子项节点);
//创建funcAddr
org.w3c.dom.Element funcAddrNode=output.createElement(“FuncAddr”);
Text Text=output.createTextNode(funcAddr);
funcAddrNode.appendChild(文本);
subItemNode.appendChild(funcAddrNode);
//创建项目名
对于(int i=0;ipublic class AndroidserverActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
GetXML xml = new GetXML();
xml.execute();
}
private class GetXML extends AsyncTask<String, Integer, String>
{
protected String doInBackground(String... conn)
{
String UID = "iPAD-CN5-DSS25-AC25";
try
{
String xml = generateXML("AC25", "/fa/gdscc/dss25-apc", UID);
if (send("localhost", xml))
getData(UID);
else
System.out.println("False");
}
catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (XPathExpressionException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ParserConfigurationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SAXException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (TransformerException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return null;
}
}
public static String generateXML(String conn, String funcAddr, String UID) throws ParserConfigurationException, SAXException,
IOException, XPathExpressionException, TransformerException
{
String url = getXML("0", conn);
DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
domFactory.setNamespaceAware(true); // never forget this!
DocumentBuilder builder = domFactory.newDocumentBuilder();
Document doc = XMLfromString(url);
XPath xpath = XPathFactory.newInstance().newXPath();
XPathExpression expr = xpath.compile("/SubscrProf/DataItem/DataItemName");
Object result = expr.evaluate(doc, XPathConstants.NODESET);
NodeList nodes = (NodeList) result;
//build xml
Document output = builder.newDocument();
//create root
org.w3c.dom.Element root = output.createElement("JMSMON2Req");
output.appendChild(root);
//create subitem
org.w3c.dom.Element subItemNode = output.createElement("SubItem");
subItemNode.setAttribute("UID", UID);
root.appendChild(subItemNode);
//create funcAddr
org.w3c.dom.Element funcAddrNode = output.createElement("FuncAddr");
Text text = output.createTextNode(funcAddr);
funcAddrNode.appendChild(text);
subItemNode.appendChild(funcAddrNode);
//create itemname
for (int i = 0; i < nodes.getLength(); i++)
{
org.w3c.dom.Element itemNameNode = output.createElement("ItemName");
text = output.createTextNode(nodes.item(i).getTextContent());
itemNameNode.appendChild(text);
subItemNode.appendChild(itemNameNode);
}
//create metadata uid
org.w3c.dom.Element metaDataNode = output.createElement("Metadata");
metaDataNode.setAttribute("key", "UID");
text = output.createTextNode(UID);
metaDataNode.appendChild(text);
subItemNode.appendChild(metaDataNode);
//create metadata conn
org.w3c.dom.Element metaDataNode2 = output.createElement("Metadata");
metaDataNode2.setAttribute("key", "CONN");
text = output.createTextNode("5");
metaDataNode2.appendChild(text);
subItemNode.appendChild(metaDataNode2);
/////////////////
//Output the XML
//set up a transformer
TransformerFactory transfac = TransformerFactory.newInstance();
Transformer trans = transfac.newTransformer();
trans.setOutputProperty(OutputKeys.OMIT_XML_DECLARATION, "yes");
trans.setOutputProperty(OutputKeys.INDENT, "yes");
//create string from xml tree
StringWriter sw = new StringWriter();
StreamResult out = new StreamResult(sw);
DOMSource source = new DOMSource(output);
trans.transform(source, out);
return URLEncoder.encode("req", "UTF-8") + "=" + URLEncoder.encode(sw.toString(), "UTF-8");
}