2016-06-23 10 views
0

メインのメソッドを使用して単一のJavaファイルでコードを実行するとコードが正常に動作しますが、私の悩みは私がspring mvcプロジェクトに配置したときにエラーファイルが変換時に見つかりません時間。私は立つことができません正確に問題は、同じコードが1つのクラスで実行されますが、私のプロジェクトでは実行されません いくつかの体を助けてください。私のプロジェクトのクラスで実装おかげで...xmlコンテンツをSAXパーサーで編集する

File xmlFile = new File("d:\\file1.xml"); 
    Reader fileReader = new FileReader(xmlFile); 
     BufferedReader bufReader = new BufferedReader(fileReader); 

     StringBuilder sb = new StringBuilder(); 
     String line = bufReader.readLine(); 
     while(line != null){ 
      sb.append(line).append("\n"); 
      line = bufReader.readLine(); 
     } 
     String xml = sb.toString(); 

    //String xml = "<users><user><name>user1</name></user></users>"; 
    XMLReader xr = new XMLFilterImpl(XMLReaderFactory.createXMLReader()) { 
     private String tagName = ""; 

     @Override 
     public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException { 
      tagName = qName; 
      super.startElement(uri, localName, qName, atts); 
     } 

     public void endElement(String uri, String localName, String qName) throws SAXException { 
      tagName = ""; 
      super.endElement(uri, localName, qName); 
     } 

     @Override 
     public void characters(char[] ch, int start, int length) throws SAXException { 
      if (tagName.equals("author")) { 
       ch = uploadXmlBean.getAuthor().toCharArray(); 
       start = 0; 
       length = ch.length; 
      } 
      if (tagName.equals("currency")) { 
       ch = uploadXmlBean.getCurrency().toCharArray(); 
       start = 0; 
       length = ch.length; 
      } 

      if (tagName.equals("name")) { 
       ch = uploadXmlBean.getName().toCharArray(); 
       start = 0; 
       length = ch.length; 
      } 

      if (tagName.equals("logicalHeading")) { 
       ch = uploadXmlBean.getLogicalHeading().toCharArray(); 
       start = 0; 
       length = ch.length; 
      } 

      super.characters(ch, start, length); 
     } 
    }; 
    Source src = new SAXSource(xr, new InputSource(new StringReader(xml))); 

    Result res = new StreamResult(xmlFile); 
    TransformerFactory.newInstance().newTransformer().transform(src, res); 

コードコードによって

@RequestMapping(value = "/xmlEditor", method = RequestMethod.POST) 
public String xmlEditor(@ModelAttribute("UploadXmlBean") final UploadXmlBean uploadXmlBean) throws Exception { 
    System.out.println("xmlEditor"); 
    employeeService.addXml(uploadXmlBean); 
    //xmlAppService.addXml(uploadXmlBean); 


    /////////////// 

    File xmlFile = new File("d:\\file1.xml"); 
    Reader fileReader = new FileReader(xmlFile); 
     BufferedReader bufReader = new BufferedReader(fileReader); 

     StringBuilder sb = new StringBuilder(); 
     String line = bufReader.readLine(); 
     while(line != null){ 
      sb.append(line).append("\n"); 
      line = bufReader.readLine(); 
     } 
     String xml = sb.toString(); 

    //String xml = "<users><user><name>user1</name></user></users>"; 
    XMLReader xr = new XMLFilterImpl(XMLReaderFactory.createXMLReader()) { 
     private String tagName = ""; 

     @Override 
     public void startElement(String uri, String localName, String qName, Attributes atts) throws SAXException { 
      tagName = qName; 
      super.startElement(uri, localName, qName, atts); 
     } 

     public void endElement(String uri, String localName, String qName) throws SAXException { 
      tagName = ""; 
      super.endElement(uri, localName, qName); 
     } 

     @Override 
     public void characters(char[] ch, int start, int length) throws SAXException { 
      if (tagName.equals("author")) { 
       ch = uploadXmlBean.getAuthor().toCharArray(); 
       start = 0; 
       length = ch.length; 
      } 
      if (tagName.equals("currency")) { 
       ch = uploadXmlBean.getCurrency().toCharArray(); 
       start = 0; 
       length = ch.length; 
      } 

      if (tagName.equals("name")) { 
       ch = uploadXmlBean.getName().toCharArray(); 
       start = 0; 
       length = ch.length; 
      } 

      if (tagName.equals("logicalHeading")) { 
       ch = uploadXmlBean.getLogicalHeading().toCharArray(); 
       start = 0; 
       length = ch.length; 
      } 

      super.characters(ch, start, length); 
     } 
    }; 
    Source src = new SAXSource(xr, new InputSource(new StringReader(xml))); 

    Result res = new StreamResult(xmlFile); 
    TransformerFactory.newInstance().newTransformer().transform(src, res); 
     return "index"; 
} 

エラースロー

java.io.FileNotFoundException: file:\d:\file1.xml (The filename, directory name, or volume label syntax is incorrect) 
at java.io.FileOutputStream.open(Native Method) 
at java.io.FileOutputStream.<init>(Unknown Source) 
at java.io.FileOutputStream.<init>(Unknown Source) 
at org.apache.xalan.transformer.TransformerIdentityImpl.createResultContentHandler(TransformerIdentityImpl.java:235) 
at org.apache.xalan.transformer.TransformerIdentityImpl.transform(TransformerIdentityImpl.java:278) 
at com.dineshonjava.controller.EmployeeController.xmlEditor(EmployeeController.java:158) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:710) 
at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:167) 
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:414) 
at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:402) 
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771) 
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716) 
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647) 
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:563) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:647) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) 
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1023) 
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) 
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) 
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
at java.lang.Thread.run(Unknown Source) 

答えて

0

です以下の変更を試してみて、一度試してみてください:

File xmlFile = new File("d:\\file1.xml").getAbsoluteFile() 
+0

申し訳ありませんが動作していません.... – user3774889

+0

詳細を編集してください。コード専用と「試してください」の回答は、検索可能なコンテンツが含まれていないため、推奨されません。なぜ誰かが「これを試してみる」べき理由を説明しません。私たちはここで知識のためのリソースとなるよう努力しています。 – abarisone

関連する問題