У меня есть веб-приложение с помощью пружинных аннотаций extensivley и у меня есть моя конфигурация ProGuard как следующее:испытывающие трудности борьбы ProGuard с весны
-printmapping out.map
-dontoptimize
-keepdirectories
-renamesourcefileattribute SourceFile
-keepattributes Exceptions,SourceFile,LineNumberTable,*Annotation*
-adaptresourcefilenames **.xsd,**.wsdl,**.xml,**.properties,**.gif,**.jpg,**.png
-adaptresourcefilecontents **.xsd,**.wsdl,**.xml,**.properties,META-INF/MANIFEST.MF
-dontshrink
-keepclassmembernames class * {
java.lang.Class class$(java.lang.String);
java.lang.Class class$(java.lang.String, boolean);
}
-keepclassmembers enum * {
public static **[] values();
public static ** valueOf(java.lang.String);
}
-keepclassmembers class * implements java.io.Serializable {
static final long serialVersionUID;
private static final java.io.ObjectStreamField[] serialPersistentFields;
private void writeObject(java.io.ObjectOutputStream);
private void readObject(java.io.ObjectInputStream);
java.lang.Object writeReplace();
java.lang.Object readResolve();
}
-keep @org.springframework.transaction.annotation.Transactional class *
-keep @org.springframework.stereotype.Service class *
-keep @org.springframework.stereotype.Controller class *
-keep @org.springframework.beans.factory.annotation.Autowired class *
-keep @org.springframework.web.bind.annotation.ResponseBody class *
-keep @org.springframework.web.bind.annotation.RequestMapping class *
-keep @org.springframework.stereotype.Repository class *
-keep @javax.annotation.Resource class *
-keep @javax.persistence.Entity class *
-keep @javax.persistence.Table class *
-keep @javax.persistence.Id class *
-keep @javax.persistence.GeneratedValue class *
-keep @javax.persistence.Column class *
-keep @javax.persistence.Transient class *
-keep @org.springframework.ws.server.endpoint.annotation.Endpoint class *
-keep @org.springframework.ws.server.endpoint.annotation.PayloadRoot class *
-keep @org.springframework.ws.server.endpoint.annotation.ResponsePayload class *
Он построен хорошо без предупреждения вообще. Но после развертывания в tomcat и открытия страницы в браузере он ждет и ждет без каких-либо результатов. В чем может быть проблема?
Можете ли вы создать нить-дамп, используя 'jstack' или' JVisualVM' во время ожидания? Кроме того, возможно, браузер молча регистрирует некоторые ошибки? –
Если вы работаете в unix/linux, вы можете сделать дамп потока, выпуская 'killall -QUIT java'. Дамп потока появится в 'catalina.out'. – Jonathan
У вас есть .class файлы под WEB-INF/...? Последний раз, когда я разговаривал с разработчиком Proguard на форумах, Proguard не смог обработать внутри файла .war, распакованные файлы .class в WEB-INF (в com/yourcompany/yourpackage): он мог обрабатывать только файлы .jar. –