2012-02-03 4 views
0

У меня есть приложение java. Я пытаюсь начать использовать YAJSW. Это всего лишь простой «Hello World» приложение, и я следовать инструкциям здесь: http://yajsw.sourceforge.net/#mozTocId527639Ошибка YAJSW с открытым статическим классом

Я сделал следующее:

  • экспортировала свой проект из затмений как работоспособный файл JAR.

  • Я побежал genconfig - никаких проблем

  • I Editted wrapper.conf и добавил расположение файла фляги

  • побежал runConsole.bat, и я получаю эту ошибку:

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

Класс, на который он ссылается, является основным классом, который должен быть общедоступным. Я застрял! Кто-нибудь там с советом?

+0

Можете ли вы загрузить привет мир код, который работает в качестве службы я хочу, чтобы проверить его, как это работает ... или вы можете ответить на мой вопрос о yajsw ... Спасибо – Wearybands

+0

я перешел от использования это и нашло другое решение. Удачи. – Patrick

ответ

2

У меня была та же проблема, (работает yajsw-стабильной 11,0 на Java 1.6.0_30-b12, Win XP Pro v 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 

В моем случае класс, содержащий статический публичный магистраль метод не был объявлен общедоступным, поэтому он был закрытым по умолчанию пакетом.

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

 Смежные вопросы

  • Нет связанных вопросов^_^