Я хочу сделать динамический веб-сервис invoker в JSF с CXF. Но когда я загружаю этот простой код, я получаю ошибку. Код:Почему я получаю эту ошибку в CXF
JaxWsDynamicClientFactory dcf = JaxWsDynamicClientFactory.newInstance();
Client client = dcf.createClient("http://ws.strikeiron.com/IPLookup2?wsdl");
Ошибка:
Нет сконфигурированные для этого приложения фабрики. Это происходит, если инициализация лиц не работает вообще - убедитесь, что вы правильно включили все параметры конфигурации, необходимые для приложения основных лиц, и что все необходимые библиотеки включены. Также проверьте выходные данные вашего веб-приложения и вашего контейнера для любых исключений! Если вы это сделали и ничего не нашли, ошибка может быть связана с тем, что вы используете специальные веб-контейнеры, которые не поддерживают регистрацию контекстно-прослушивателей через файлы TLD, и слушатель контекста не настроен в вашем web.xml. Типичная конфигурация выглядит так: org.apache.myfaces.webapp.StartupServletContextListener
Вызвано: java.lang.IllegalStateException - нет фабрик, настроенных для этого приложения. Это происходит, если инициализация лиц не работает вообще - убедитесь, что вы правильно включили все параметры конфигурации, необходимые для приложения основных лиц, и что все необходимые библиотеки включены. Также проверьте выходные данные вашего веб-приложения и вашего контейнера для любых исключений! Если вы это сделали и ничего не нашли, ошибка может быть связана с тем, что вы используете специальные веб-контейнеры, которые не поддерживают регистрацию контекстно-прослушивателей через файлы TLD, и слушатель контекста не настроен в вашем web.xml. Типичная конфигурация выглядит так: org.apache.myfaces.webapp.StartupServletContextListener
Любая идея, как решить проблему?
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
<display-name>ServiceInvoker</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<context-param>
<param-name>javax.servlet.jsp.jstl.fmt.localizationContext</param-name>
<param-value>resources.application</param-value>
</context-param>
<context-param>
<description>State saving method: 'client' or 'server' (=default). See JSF Specification 2.5.2</description>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>client</param-value>
</context-param>
<context-param>
<description>
This parameter tells MyFaces if javascript code should be allowed in
the rendered HTML output.
If javascript is allowed, command_link anchors will have javascript code
that submits the corresponding form.
If javascript is not allowed, the state saving info and nested parameters
will be added as url parameters.
Default is 'true'</description>
<param-name>org.apache.myfaces.ALLOW_JAVASCRIPT</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<description>
If true, rendered HTML code will be formatted, so that it is 'human-readable'
i.e. additional line separators and whitespace will be written, that do not
influence the HTML code.
Default is 'true'</description>
<param-name>org.apache.myfaces.PRETTY_HTML</param-name>
<param-value>true</param-value>
</context-param>
<context-param>
<param-name>org.apache.myfaces.DETECT_JAVASCRIPT</param-name>
<param-value>false</param-value>
</context-param>
<context-param>
<description>
If true, a javascript function will be rendered that is able to restore the
former vertical scroll on every request. Convenient feature if you have pages
with long lists and you do not want the browser page to always jump to the top
if you trigger a link or button action that stays on the same page.
Default is 'false'
</description>
<param-name>org.apache.myfaces.AUTO_SCROLL</param-name>
<param-value>true</param-value>
</context-param>
<listener>
<listener-class>org.apache.myfaces.webapp.StartupServletContextListener</listener-class>
</listener>
</web-app>
лица-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"
version="1.2">
<managed-bean>
<description>Bean used for invoking services</description>
<managed-bean-name>invoker</managed-bean-name>
<managed-bean-class>org.cot.invoker.Invoker</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
</faces-config>
Это то, что я получаю в консоли в Eclipse:
22.3.2010 15: 00:11 org.apache.cxf.endpoint.dynamic.DynamicClientFactory outputDebug INFO: Созданные классы: com.strikeiron.ws.GetRemainingHits, com.strikeiron.ws.GetRemainingHitsResponse, com.strikeiron.ws.LicenseInfo, com.strikeiron.ws.ObjectFactory, com.strikeiron.ws.RegisteredUser, com.strikeiron.ws.SubscriptionInfo, com. Устранение неполадок. com.strikeiron.rus.narod.ru, com.strikeiron.DNSInfo, com.strikeiron.DNSLookup, com. Устранение неполадок. com.strikeiron.DNSInfo, com.strikeiron.DNSLookup, com. strikeiron.DNSInfo, com.strikeiron.DNSLookup, com. strikeiron.DNSInfo, com.strikeiron.DNSLookup, com. strikeiron.DNSLookupResponse, com.strikeiron.GetServiceInfo, com.strikeiron.GetServiceInfoResponse, com.strikeiron.GetStatusCodes, com.strikeiron.GetStatusCodesForMethod, com.strikeiron.GetStatusCodesForMethodResponse, com.strikeiron.GetStatusCodesResponse, com.strikeiron.MethodStatusRecord, com.strikeiron. ObjectFactory, com.strikeiron.SIWsOutputOfDNSInfo, com.strikeiron.SIWsOutputOfMethodStatusRecord, com.strikeiron.SIWsOutputOfSIWsResultArrayOfMethodStatusRecord, com.strikeiron.SIWsOutputOfSIWsResultArrayOfSer viceInfoRecord, com.strikeiron.SIWsResultArrayOfMethodStatusRecord, com.strikeiron.SIWsResultArrayOfSIWsStatus, com.strikeiron.SIWsResultArrayOfServiceInfoRecord, com.strikeiron.SIWsStatus, com.strikeiron.ServiceInfoRecord JE замедленное 22.3.2010 15:00:13 javax.faces.webapp._ErrorPageWriter handleThrowable SEVERE: Произошло исключение java.lang.IllegalStateException: для этого приложения не созданы фабрики.Это происходит, если инициализация лиц не работает вообще - убедитесь, что вы правильно включили все параметры конфигурации, необходимые для приложения основных лиц, и что все необходимые библиотеки включены. Также проверьте выходные данные вашего веб-приложения и вашего контейнера для любых исключений! Если вы это сделали и ничего не нашли, ошибка может быть связана с тем, что вы используете специальные веб-контейнеры, которые не поддерживают регистрацию контекстных прослушивателей через файлы TLD, а слушатель контекста не настроен в вашем web.xml. Типичная конфигурация выглядит так: org.apache.myfaces.webapp.StartupServletContextListener
at javax.faces.FactoryFinder.getFactory(FactoryFinder.java:106)
at org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:356)
at org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
at org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:155)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
, когда я нажимаю на:
<h:commandLink value="Invoke me!" actionListener="#{invoker.doInvoke}"></h:commandLink>
показать нам 'рожу-config.xml 'и' web.xml' – Bozho
Я добавляю также faces-config.xml и web.xml. Hm ... Im уже 2 дня пытается решить эту проблему – Milan
есть ли какие-либо другие исключения/ошибки в файлах журнала? Например, «NoClassDefFound», например – Bozho