2017-04-05 22 views
0

,而試圖通過Tomcat的部署web應用程序,我收到此錯誤7.JSP - 只能導入一個類型。 Name.pacakge.class解析爲一個方案,但類是有

JSP文件名analysis.jsp,這是錯誤:

Apr 05, 2017 3:05:39 PM org.apache.catalina.core.StandardContext loadOnStartup 
SEVERE: Servlet [analyserServlet] in web application [/MWE] threw load() exception 
org.apache.jasper.JasperException: Unable to compile class for JSP: 

An error occurred at line: [26] in the generated java file: [/usr/share/tomcat/work/Catalina/localhost/MWE/org/apache/jsp/analysis_jsp.java] 
Only a type can be imported. mila.HMM.MorphMult2TaggerFormat resolves to a package 

An error occurred at line: [27] in the generated java file: [/usr/share/tomcat/work/Catalina/localhost/MWE/org/apache/jsp/analysis_jsp.java] 
Only a type can be imported. mila.HMM.HMM2Morph resolves to a package 

An error occurred at line: [28] in the generated java file: [/usr/share/tomcat/work/Catalina/localhost/MWE/org/apache/jsp/analysis_jsp.java] 
Only a type can be imported. mila.mw.PostProcessor1 resolves to a package 

An error occurred at line: [29] in the generated java file: [/usr/share/tomcat/work/Catalina/localhost/MWE/org/apache/jsp/analysis_jsp.java] 
Only a type can be imported. mila.mw.MWXMLTokenizer resolves to a package 

An error occurred at line: 36 in the jsp file: /analysis.jsp 
mila.mw.MWXMLTokenizer cannot be resolved to a type 
33: String tokenizeAndAnalyze(String rawText) throws Exception { 
34:  StringWriter sw = new StringWriter(); 
35:  try (InputStream ins = new ByteArrayInputStream(rawText.getBytes("UTF-8"))) { 
36:   new mila.mw.MWXMLTokenizer().tokenizeAndAnalyze(ins, new PrintWriter(sw)); 
37:  } 
38:  StringWriter ppSW = new StringWriter(); 
39:  try (InputStream ins = new ByteArrayInputStream(sw.toString().getBytes("UTF-8"))) { 


An error occurred at line: 40 in the jsp file: /analysis.jsp 
mila.mw.PostProcessor1 cannot be resolved to a type 
37:  } 
38:  StringWriter ppSW = new StringWriter(); 
39:  try (InputStream ins = new ByteArrayInputStream(sw.toString().getBytes("UTF-8"))) { 
40:   new mila.mw.PostProcessor1().process(ins, new PrintWriter(ppSW)); 
41:  } 
42:  return ppSW.toString(); 
43: } 


An error occurred at line: 46 in the jsp file: /analysis.jsp 
mila.HMM.MorphMult2TaggerFormat cannot be resolved to a type 
43: } 
44: 
45: String runTagger(String xmlAnalyzed, String _tempDirectoryPath) throws Exception { 
46:  final String taggerFormat = new mila.HMM.MorphMult2TaggerFormat() 
47:        .myWEBMorp2Tagger(xmlAnalyzed, _tempDirectoryPath); 
48:  final String roydir = "/data/tagger/royTagger/"; 
49:  final String probabilityDir = "/data/tagger/taggerLearningOutputFile/"; 


An error occurred at line: 60 in the jsp file: /analysis.jsp 
mila.HMM.HMM2Morph cannot be resolved to a type 
57:  
58:  final String xmlTaggedFilename = _tempDirectoryPath + "/tagged.xml"; 
59:  PrintWriter pw = new PrintWriter(xmlTaggedFilename); 
60:  new mila.HMM.HMM2Morph().process(xmlAnalyzed, taggedFilename, pw); 
61:  return xmlTaggedFilename;  
62: } 
63: 


Stacktrace: 
    at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.java:103) 
    at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:366) 
    at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:494) 
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:379) 
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:354) 
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:341) 
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:662) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:364) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:395) 
    at org.apache.jasper.servlet.JspServlet.init(JspServlet.java:138) 
    at org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1282) 
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1195) 
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:1085) 
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:5318) 
    at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5610) 
    at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:147) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:899) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:875) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:652) 
    at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1260) 
    at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:2002) 
    at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) 
    at java.util.concurrent.FutureTask.run(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 

這裏是進口部分從JSP:

<%@ page language = "java" 
    import = "java.lang.StringBuilder" 
    import = "java.io.StringWriter" 
    import = "java.io.PrintWriter" 
    import = "java.io.ByteArrayInputStream" 
    import = "java.io.IOException" 
    import = "java.io.File" 
    import = "java.io.BufferedReader" 
    import = "java.io.InputStreamReader" 
    import = "java.io.InputStream" 
    import = "java.nio.file.Files" 
    import = "java.nio.file.Paths" 
    import = "java.nio.file.StandardCopyOption" 
    import = "mila.HMM.MorphMult2TaggerFormat" 
    import = "mila.HMM.HMM2Morph" 
    import = "mila.mw.PostProcessor1" 
    import = "mila.mw.MWXMLTokenizer" 
%> 

WEB-INF/lib文件夾我有一個名爲morphAnalyzer.jar JAR這基本上是項目,它包含了所有的CLASSE包括那些導致這個錯誤的人。 這裏是部分VIM窺視JAR

mila/ 
mila/HMM/ 
mila/HMM/HMM2Morph.class 
mila/HMM/MorphMult2TaggerFormat.class 
... 
mila/mw/MWXMLMorphAnalyzer.class 
mila/mw/MWXMLTokenizer.class 
mila/mw/PostProcessor1.class 
... 

正如你可以看到罐子不包括我的需要,但由於某些原因,JSP文件不承認他們是類的所有類。

P.S沒有其他包類名稱相同(即所有的類名是在整個項目中是唯一)

我在做什麼錯?請幫忙。

+0

解決類似問題的建議重新啓動Tomcat,請參閱:http://stackoverflow.com/questions/15962709/only-a-type-can-be-imported-abc-resolves-to-a-package – Berger

+0

我試過了。解除部署服務,重新啓動tomcat,試圖重新部署,並得到相同的錯誤:( – user3765713

回答

1

在你的類路徑中包含morphAnalyzer.jar應用程序

+0

對不起noob問題,但我該怎麼做?這個JAR基本上是我的整個應用程序。 – user3765713

+0

如果您正在構建桌面應用程序。比你的項目應該壓縮成jar。對於Web應用程序,它應該壓縮爲.war。而在這場WAR-WEB/INF/lib文件夾下,你的應用所指的應該駐留的其他庫。我日食您可以配置這樣這些jar文件,他們將代戰爭文件的過程中捆綁,並在編譯時 –

+0

我的工作遠程Linux工作站上公認的路徑(我的電腦是Windows)和應用程序的目的是互聯網。我做的是創造與日食其導出一個jar文件('morphAnalayzer.jar')(與它捆綁在一起的簡稱庫),並把它裏面的'WEB-INF \ lib'文件夾(通過SSH工作站)然後簡單地嘗試從tomcat管理器(在我的PC上)將其部署到該文件夾​​。我可以從整個東西中生成一個'.war'文件,並從家裏用tomcat管理器上傳它,會有相同的效果嗎? – user3765713

0

類將在逗號分隔的導入屬性。

像下面:

進口= 「mila.HMM.MorphMult2TaggerFormat,mila.HMM.HMM2Morph,mila.mw.PostProcessor1,mila.mw.MWXMLTokenizer」

+0

所以我應該改變所有進口看起來像'import =「class1,class2,class3,...」'? – user3765713

+0

是。Go ahead。這是正確的方法。 – VNT

+0

這不起作用,我試着重新啓動tomcat。 – user3765713

相關問題