2013-03-29 2 views
1

Я являюсь «гордым» наследником 12-летней кодовой базы, над которой многие годы работали многие инженеры. Мне было поручено модернизировать нашу систему от окорока 2.1.1 до стеклянной рыбы 3.1.2.2. Большинство из них прекрасно компилируется после того, как указали на новые ящики с 3-мя стаканами, за исключением одной проблемы, с которой я сталкиваюсь. Существует способ, как это:Как получить ServerContext в стеклянной платке 3

public boolean isRunningInApplicationServer() { 
    return ApplicationServer.getServerContext() != null; 
} 

компилятор не может найти «com.sun.enterprise.server.ApplicationServer». Я предполагаю, что есть новый способ получить ServerContext с использованием glassifsh 3. Есть ли у кого-нибудь предложения?

+0

Заманчиво сказать 'return true', поскольку он запущен на сервере приложений ... Но метод может быть там по какой-то причине. Вместо того, чтобы просто переписывать его, попробуйте выяснить, что он должен делать, и почему/если это необходимо. Может быть, вы просто можете удалить его. В конце концов, код 12+ лет ... – NilsH

+0

К сожалению, я не могу его удалить. Некоторые части нашего кода должны вести себя по-разному, если они работают как самостоятельный процесс. Этот уровень рефакторинга, вероятно, выходит за рамки – Kyle

+0

Возможно, эквивалент для более новых версий Glassfish, но он может быть реализован как простой (и более портативный), как проверка системного свойства или аналогичного. Задайте системное свойство в параметрах JVM сервера приложений и не устанавливайте его при автономной работе. – NilsH

ответ

0

У меня точно такая же проблема, как и вы .. с этим кодом и другими классами. То, что я только что нашел это:.

если (((SecurityServicesUtil.getInstance() = нуль) & & SecurityServicesUtil.getInstance() isServer())

Класс GF 3 API является: com.sun.enterprise.security.SecurityServicesUtil от security.jar

использует внутренне класс org.glassfish.api.admin.ProcessEnvironment от GlassFish-api.jar

надеюсь, что это поможет вам

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