WebSphere ClassnotFoundException при вызове WebService после запуска (но не позже)

StackOverflow https://stackoverflow.com/questions/4309736

Вопрос

Обновлять: То ClassNotFoundException Происходит только в том случае, если я попытаюсь использовать веб-сервис сразу после запуска приложения. Если я жду (для некоторого неизвестного события / продолжительности) приложение будет работать. Я хотел бы знать, что это то, что мне нужно ждать.


Проблема: Мое приложение не удается, потому что класс, который существует не найден классовым загрузкой.

Больше информации:

Класс, который не может быть найден, это com.sun.xml.stream.ZephyrParserFactory.

В ухе у меня есть sjsxr.jar. Отказ Эта банка содержит класс com.sun.xml.stream.ZephyrParserFactory

Ухо также содержит MyApp.jar, который содержит точки входа EJB для приложения. То MyApp.jar Манифест ссылается на все необходимые банки, в том числе sjsxr.jar

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.1
Created-By: 1.5.0_18 (Sun Microsystems Inc.)
Built-By: GMM Development Team
Class-Path: aopalliance-1.0.jar commons-codec-1.4.jar commons-collecti
 ons-3.1.jar commons-lang-2.1.jar commons-logging-1.1.1.jar ehcache-co
 re-2.1.0.jar ehcache-spring-annotations-1.1.2.jar joda-time-1.6.1.jar
  log4j-1.2.16.jar org.springframework.context.support-3.0.4.RELEASE.j
 ar sjsxr.jar slf4j-api-1.6.1.jar slf4j-log4j12-1.6.1.jar spring-aop
 -3.0.4.RELEASE.jar spring-asm-3.0.4.RELEASE.jar spring-beans-3.0.4.RE
 LEASE.jar spring-context-3.0.4.RELEASE.jar spring-core-3.0.4.RELEASE.
 jar spring-expression-3.0.4.RELEASE.jar spring-jdbc-3.0.4.RELEASE.jar
  spring-tx-3.0.4.RELEASE.jar swiftVal.jar velocity-1.5.jar vm-startup
 .jar xbean.jar

Приложение содержит код клиента веб-служб, сгенерированные WebSphere's wsimport инструмент. Когда приложение пытается вызвать этот код, выбрасывается следующее исключение:

EJB threw an unexpected (non-declared) exception during invocation of method 
  "messageIn" on bean "BeanId(MyApp#ejb.jar#NodeEJB, null)". 
Exception data: javax.xml.stream.FactoryConfigurationError: Provider
  com.sun.xml.stream.ZephyrParserFactory not found
    at javax.xml.stream.XMLInputFactory.newInstance(Unknown Source)
    at org.apache.axiom.om.util.StAXUtils$7.run(StAXUtils.java:327)
    at java.security.AccessController.doPrivileged(AccessController.java:202)
    at org.apache.axiom.om.util.StAXUtils.getXMLInputFactory_perClassLoader(StAXUtils.java:323)
    at org.apache.axiom.om.util.StAXUtils.getXMLInputFactory(StAXUtils.java:78)
    at org.apache.axiom.om.util.StAXUtils.createXMLStreamReader(StAXUtils.java:133)
    at org.apache.axis2.util.XMLUtils.toOM(XMLUtils.java:596)
    at org.apache.axis2.util.XMLUtils.toOM(XMLUtils.java:581)
    at org.apache.axis2.deployment.DescriptionBuilder.buildOM(DescriptionBuilder.java:97)
    at org.apache.axis2.deployment.AxisConfigBuilder.populateConfig(AxisConfigBuilder.java:90)
    at org.apache.axis2.deployment.DeploymentEngine.populateAxisConfiguration(DeploymentEngine.java:641)
    at com.ibm.ws.websvcs.deployment.WASAxis2ConfigurationBuilder.loadAxisCfg(WASAxis2ConfigurationBuilder.java:492)
    at com.ibm.ws.websvcs.deployment.WASAxis2ConfigurationBuilder.loadAxisClientConfiguration(WASAxis2ConfigurationBuilder.java:191)
    at com.ibm.ws.websvcs.client.WSClientConfigurationFactory.getConfigContext(WSClientConfigurationFactory.java:271)
    at com.ibm.ws.websvcs.client.WSClientConfigurationFactory.getClientConfigurationContext(WSClientConfigurationFactory.java:236)
    at org.apache.axis2.jaxws.description.impl.DescriptionFactoryImpl.createServiceDescription(DescriptionFactoryImpl.java:92)
    at org.apache.axis2.jaxws.description.impl.DescriptionFactoryImpl.createServiceDescription(DescriptionFactoryImpl.java:79)
    at org.apache.axis2.jaxws.description.DescriptionFactory.createServiceDescription(DescriptionFactory.java:76)
    at org.apache.axis2.jaxws.spi.ServiceDelegate.<init>(ServiceDelegate.java:212)
    at org.apache.axis2.jaxws.spi.Provider.createServiceDelegate(Provider.java:59)
    at javax.xml.ws.Service.<init>(Service.java:67)
    at my.generated.Web_Service.<init>(Web_Service.java:44)
...
Caused by: java.lang.ClassNotFoundException: com.sun.xml.stream.ZephyrParserFactory
    at java.lang.Class.forNameImpl(Native Method)
    at java.lang.Class.forName(Class.java:136)
    at javax.xml.stream.FactoryFinder.newInstance(Unknown Source)
    at javax.xml.stream.FactoryFinder.find(Unknown Source)
    at javax.xml.stream.FactoryFinder.find(Unknown Source)
    ... 101 more

Я подтвердил полго десятки раз, когда класс, банка и проявление правильны до и после развертывания.

Я также пытался переименовать sjsxr.jar Чтобы избежать любых потенциальных затмений, но проблема не уходит.

Я использую WebSphere 7.0.0.11 ND

Может кто-нибудь помочь?

Это было полезно?

Решение

Прошло долгое время, так как я использовал Java, и ненадолго коснулся только WebSphere, но, возможно, это помогу? Если у вас проблемы с установкой файла JAR, используя манифест, попробуйте упаковать его в WEB-INF/lib папка в банке. Это должно быть обнаружено неявно, без необходимости ссылаться на его манифесте, предполагая, что я правильно прочитал информацию на связанной странице.

Вы также можете взглянуть на эта сторона WebSphere, примерно на полпути вниз по странице под заголовком «Оформление классов в файле ушей».

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top