2012-02-03 130 views
0

我有一個Java應用程序我試圖開始使用YAJSW。這只是一個簡單的「Hello World」應用程序,我按照指示在這裏:http://yajsw.sourceforge.net/#mozTocId527639與公共靜態類YAJSW錯誤

我也做了以下內容:

  • 出口我的項目從Eclipse作爲一個可運行的JAR文件。

  • 我跑genconfig - 沒有問題

  • 我editted wrapper.conf並添加jar文件

  • 跑runConsole.bat的位置,我得到這個錯誤:

    java.lang.IllegalAccessException: class org.rzo.yajsw.app.WrapperJVMMain can not access a member of class xxxx with modifiers "public static"

它引用的類是主類,它必須是公共靜態的。我卡住了!任何人都有建議嗎?

+0

能否請您上傳它運行爲您服務的hello world代碼,我想看看它是如何工作...或者你能回答我關於yajsw問題...謝謝 – Wearybands 2013-02-27 12:45:42

+0

我已經從使用上移這並找到了另一個解決方案祝你好運。 – Patrick 2013-02-27 14:03:13

回答

2

我有同樣的問題,(運行yajsw穩定-11.0的Java 1.6.0_30-b12的,Win XP的臨至五2002 SP3):

INFO|wrapper|Service socket-proxy|12-04-11 11:48:32|init 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:32|ahessian jmx service bound to port 15002 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:32|set state IDLE->STARTING 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:32|Win service: before service init 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:32|starting Process 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:32|Controller State: UNKNOWN -> WAITING 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:32|+ ServiceMain callback 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:32|reporting status 0 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:32|reporting status 0 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:32|onstart 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:32|working dir C:\dev\workspaceTax\socket-proxy 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:32|create script: scripts/trayMessage.gv 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:33|found script scripts/trayMessage.gv 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:33|spawning wrapped process 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:33|started process with pid 3720 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:33|waiting for termination of process 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:33|set state STARTING->RUNNING 
INFO|3720/0|Service socket-proxy|12-04-11 11:48:33|[INFO] DefaultFileReplicator - Using "C:\WINDOWS\TEMP\vfs_cache" as temporary files store. 
INFO|3720/0|Service socket-proxy|12-04-11 11:48:33|java.lang.IllegalAccessException: Class org.rzo.yajsw.app.WrapperJVMMain can not access a member of class [...].socketproxy.Proxy with modifiers "public static" 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:33|Trigger found: Exception 
INFO|3720/0|Service socket-proxy|12-04-11 11:48:33| at sun.reflect.Reflection.ensureMemberAccess(Unknown Source) 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:33|start script scripts/trayMessage.gv 
INFO|3720/0|Service socket-proxy|12-04-11 11:48:33| at java.lang.reflect.Method.invoke(Unknown Source) 
INFO|3720/0|Service socket-proxy|12-04-11 11:48:33| at org.rzo.yajsw.app.WrapperJVMMain.executeMain(WrapperJVMMain.java:53) 
INFO|3720/0|Service socket-proxy|12-04-11 11:48:33| at org.rzo.yajsw.app.WrapperJVMMain.main(WrapperJVMMain.java:36) 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:33|end script scripts/trayMessage.gv 
INFO|3720/0|Service socket-proxy|12-04-11 11:48:34|process terminated 
INFO|3720/0|Service socket-proxy|12-04-11 11:48:34|Controller State: WAITING -> PROCESS_KILLED 
INFO|wrapper|Service socket-proxy|12-04-11 11:48:34|restart process due to default exit code rule 

在我的情況下,類包含靜態公共主方法沒有被公開,所以它是默認的package-private。

class Proxy { 
... 
    public static void main(String args[]) throws IOException{ 
     ... 
     } 
} 

包私有類的公共方法不屬於一個不同包的類可見,所以這是我的情況的問題。例如參見https://stackoverflow.com/questions/5260467/public-methods-in-package-private-classes

public class Proxy { 
... 
    public static void main(String args[]) throws IOException{ 
     ... 
     } 
} 

聲明類公開如上解決了我的問題。也許你可以發佈一些關於整個問題的更多細節,有人會發佈一個解決方案。 問候 -gf