2013-03-08 1 views
9

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

Я создал приложение и закодировал все пути Ресурсов для трикотажа.

<servlet-name>Jersey REST Service</servlet-name> 
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> 
<init-param> 
<param-name>javax.ws.rs.Application</param-name> 
<param-value>com.livily.rest.JerseyApplication</param-value> 
</init-param> 

Джерси Приложение имеет все классы

public Set<Class<?>> getClasses() 
{ 
Set<Class<?>> s = new HashSet<Class<?>>(); 
s.add(com.livily.rest.visitor.UserRatingUtil.class); 
} 

Однако, трикотаж сканирования для многих поставщиков

Mar 8, 2013 3:39:40 PM com.sun.jersey.core.spi.component.ProviderServices getServiceClasses 
CONFIG:  Provider found: class com.sun.jersey.server.impl.model.parameter.multivalued.StringReaderProviders$StringConstructor 

Он делает это около 50-100 раз, а затем

Mar 8, 2013 3:39:41 PM com.sun.jersey.server.impl.modelapi.annotation.IntrospectionModeller createResource 
FINEST: A new abstract resource created by IntrospectionModeler: AbstractResource("/current-status", - CurrentStatus: 1 constructors, 0 fields, 0 setter methods, 1 res methods, 0 subres methods, 0 subres locators) 

для каждого на e

Общее время составляет около 4-10 секунд, а appengine не нравится, так как он рассчитывает быстро завершить загрузку; в противном случае он начнет давать странные 500 ошибок (даже для статических файлов).

Я в тупике; любая помощь будет оценена.

+0

Не ответ, но у меня были аналогичные проблемы времени загрузки с джерси, и я переехал в RestExpress (https://github.com/RestExpress/RestExpress), который не имеет никакого веса J2EE. – Will

+0

Cloudpre - это недействительный комментарий – Will

+0

Lipis - я переехал отдохнуть и, к моему удивлению, он был на самом деле медленнее во время загрузки. Я все еще получаю исключения по крайним срокам. Каков наилучший способ выяснить, что занимает много времени запуска? Я изменил уровень регистрации на всех и нашел много результатов. Это лучший способ? – cloudpre

ответ

1

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

<init-param> 
     <param-name>com.sun.jersey.config.property.packages</param-name> 
     <param-value>com.foo.myproviders</param-value> 
    </init-param> 
+0

Jaytee - сканирование пакетов на самом деле медленнее, чем явное определение классов в приложении JaxRS. – cloudpre

+0

Как вы можете определить классы в приложении JaxRS? Я думал, что сканирование пакетов было единственной возможностью –

1

Set jersey.config.disableAutoDiscovery. См. Configuration Properties.

<init-param> 
    <param-name>jersey.config.disableAutoDiscovery</param-name> 
    <param-value>true</param-value> 
</init-param> 

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

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