我安装了最新的JBoss AS 7(7.0.2)并安装了eclipse工具以将其与WTP连接.我创建了一个"动态Web项目"(没有maven).我试着让"HelloWorld"运行.只有两个班级.
@WebServlet("/HelloWorld")
public class HelloWorldServlet extends HttpServlet {
@Inject
HelloService helloService;
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
PrintWriter writer = resp.getWriter();
writer.println("<html><head /><body>");
writer.println("<h1>" + helloService.createHelloMessage("World") + "</h1>");
writer.println("</body></html>");
writer.close();
}
}
public class HelloService {
public String createHelloMessage(String name) {
return "Hello " + name + "!";
}
}
Run Code Online (Sandbox Code Playgroud)
我从eclipse启动服务器,它启动没有错误.但是当从浏览器调用我的servlet(localhost:8080)时,我的代码会抛出一个NPE.
10:28:29,646 ERROR [org.apache.catalina.core.ContainerBase.[jboss.web].[default-host].[/hello].[hello.HelloWorldServlet]] (http--127.0.0.1-8080-1) Servlet.service() for servlet hello.HelloWorldServlet threw exception: java.lang.NullPointerException
at hello.HelloWorldServlet.doGet(HelloWorldServlet.java:23) [classes:]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:734) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:847) [jboss-servlet-api_3.0_spec-1.0.0.Final.jar:1.0.0.Final]
[...]
Run Code Online (Sandbox Code Playgroud)
似乎@Inject注释不起作用.如何追查问题?可能是什么原因?
我目前正在开发一个应用程序,它具有基于JBoss 7.1上的JavaEE 6.0的服务器部分和基于Eclipse RCP 3.7的客户端.
对于共享API的简单OSGi包,由于版本和depdencenies的一些差异,我已经遇到了麻烦.对于bundle激活器, API需要" org.osgi.framework. ",对于slf4j日志API ,API需要" org.slf4j. ".
目前我的客户端工作得很好,但JBoss告诉我OSGi导入的预期版本以及slf4j的导入不适合...
我有最佳实践在Eclipse和JBoss之间共享OSGi包吗?我是否需要回到简单的导入和导出声明,或者我能以某种方式使用Require-Bundle吗?我是否需要为JBoss创建一些兼容包以使其运行?在这里进行的最佳方式是什么?
更新 我通过使用Import-Package专门解决了这个问题.对于像org.osgi.framework这样的依赖是使用version ="0.0"来解释它并不重要.:-(这不是很安全,但目前我没有看到另一种选择.有更好的方法吗?
更新2 还需要注意实现OSGi框架的正确版本.JBoss 7.1.x仅实现了OSGi 4.2,它不支持类型安全服务检索.
我需要在应用程序中实现集群机制。这样做时启动jbossAS7时出现错误,错误是:
=========================================================================
JBoss Bootstrap Environment
JBOSS_HOME: /home/chandrashekar/CHE/SoftWares/jboss-as-7.1.1.Final
JAVA: java
JAVA_OPTS: -Xms64m -Xmx512m -XX:MaxPermSize=256m -Djava.net.preferIPv4Stack=true -Dorg.jboss.resolver.warning=true -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djboss.modules.system.pkgs=org.jboss.byteman -Djava.awt.headless=true -Djboss.domain.default.config=domain.xml -Djboss.host.default.config=host.xml
=========================================================================
19:18:52,599 INFO [org.jboss.modules] (main) JBoss Modules version 1.1.1.GA
19:18:52,688 INFO [org.jboss.as.process.Host Controller.status] (main) JBAS012017: Starting process 'Host Controller'
[Host Controller] 19:18:53,082 INFO [org.jboss.modules] (main) JBoss Modules version 1.1.1.GA
[Host Controller] 19:18:53,196 INFO [org.jboss.msc] (main) JBoss MSC version 1.0.2.GA
[Host Controller] 19:18:53,251 INFO [org.jboss.as] (MSC service thread 1-3) JBAS015899: JBoss AS 7.1.1.Final "Brontes" starting
[Host Controller] 19:18:54,070 ERROR [org.jboss.as.controller.management-operation] …
Run Code Online (Sandbox Code Playgroud) 对我来说似乎JSF 2.2在JBoss 7.1.1上根本不起作用
使用jboss的multi jsf我刚刚用jsf 2.2替换了jsf api和jsf实现模块
我的应用程序启动时,我看到以下错误:
01:46:59,286 INFO [javax.enterprise.resource.webcontainer.jsf.config] (MSC service thread 1-5) Initializing Mojarra 2.2.0 ( 20130502-2118 https://svn.java.net/svn/mojarra~svn/tags/2.2.0@11930) for context '/broker'
01:46:59,922 SEVERE [javax.enterprise.resource.webcontainer.jsf.config] (MSC service thread 1-5) Critical error during deployment: : java.lang.NoClassDefFoundError: com/sun/faces/spi/InjectionProvider
at javax.faces.FactoryFinder$FactoryManager.copyInjectionProviderFromFacesContext(FactoryFinder.java:1051) [jboss-jsf-api_2.2_spec-2.2.0.jar:2.2.0]
at javax.faces.FactoryFinder$FactoryManager.<init>(FactoryFinder.java:1035) [jboss-jsf-api_2.2_spec-2.2.0.jar:2.2.0]
at javax.faces.FactoryFinder$FactoryManagerCache.getApplicationFactoryManager(FactoryFinder.java:856) [jboss-jsf-api_2.2_spec-2.2.0.jar:2.2.0]
at javax.faces.FactoryFinder$FactoryManagerCache.getApplicationFactoryManager(FactoryFinder.java:793) [jboss-jsf-api_2.2_spec-2.2.0.jar:2.2.0]
at javax.faces.FactoryFinder$FactoryManagerCache.access$100(FactoryFinder.java:768) [jboss-jsf-api_2.2_spec-2.2.0.jar:2.2.0]
at javax.faces.FactoryFinder.setFactory(FactoryFinder.java:409) [jboss-jsf-api_2.2_spec-2.2.0.jar:2.2.0]
at com.sun.faces.config.processor.FactoryConfigProcessor.setFactory(FactoryConfigProcessor.java:317) [jsf-impl-2.2.0.jar:2.2.0]
at com.sun.faces.config.processor.FactoryConfigProcessor.processFactories(FactoryConfigProcessor.java:259) [jsf-impl-2.2.0.jar:2.2.0]
at com.sun.faces.config.processor.FactoryConfigProcessor.process(FactoryConfigProcessor.java:216) [jsf-impl-2.2.0.jar:2.2.0]
at com.sun.faces.config.ConfigManager.initialize(ConfigManager.java:435) [jsf-impl-2.2.0.jar:2.2.0]
at com.sun.faces.config.ConfigureListener.contextInitialized(ConfigureListener.java:214) [jsf-impl-2.2.0.jar:2.2.0]
at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3392) [jbossweb-7.0.13.Final.jar:]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3850) [jbossweb-7.0.13.Final.jar:]
at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final] …
Run Code Online (Sandbox Code Playgroud) 我想将一个Singleton EJB注入到我的POJO类中.使用新的EJB 3.1规范,是否可以将EJB注入POJO?我知道在EJB 3.0中,@ EJB注释可用于注入EJB,但这对简单的POJO不起作用.
@javax.inject.Inject
也不适合我.
还有一件事是,容器和非容器资源之间有什么区别?我如何实现它,我正在使用JBoss AS 7.1.1.
我将我的项目从JBoss AS 7.2迁移到WildFly 8.0,经过一段时间的更新后,我无法弄清楚,如何解决RestEASY和Jackson不兼容问题.
在JBoss AS 7.2中,我使用了RestEASY 3.0.6.Final和Jackson 2.2.1,它们就像一个魅力.但现在,使用WildFly的 Jackson 2.3,存在不兼容性.服务器抛出NoSuchMethodError异常:
13:56:27,049 ERROR [io.undertow.request] (default task-3) UT005023: Exception handling request to /iqpp/applicants/: java.lang.NoSuchMethodError: org.jboss.resteasy.plugins.providers.jackson.ResteasyJackson2Provider._configForWriting(Lcom/fasterxml/jackson/databind/ObjectMapper;[Ljava/lang/annotation/Annotation;)Lcom/fasterxml/jackson/jaxrs/json/JsonEndpointConfig;
at org.jboss.resteasy.plugins.providers.jackson.ResteasyJackson2Provider.writeTo(ResteasyJackson2Provider.java:137) [resteasy-jackson2-provider-3.0.6.Final.jar:]
at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.writeTo(AbstractWriterInterceptorContext.java:129) [resteasy-jaxrs-3.0.6.Final.jar:]
at org.jboss.resteasy.core.interception.ServerWriterInterceptorContext.writeTo(ServerWriterInterceptorContext.java:62) [resteasy-jaxrs-3.0.6.Final.jar:]
at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.proceed(AbstractWriterInterceptorContext.java:118) [resteasy-jaxrs-3.0.6.Final.jar:]
at org.jboss.resteasy.security.doseta.DigitalSigningInterceptor.aroundWriteTo(DigitalSigningInterceptor.java:143) [resteasy-crypto-3.0.6.Final.jar:]
at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.proceed(AbstractWriterInterceptorContext.java:122) [resteasy-jaxrs-3.0.6.Final.jar:]
at org.jboss.resteasy.plugins.interceptors.encoding.GZIPEncodingInterceptor.aroundWriteTo(GZIPEncodingInterceptor.java:100) [resteasy-jaxrs-3.0.6.Final.jar:]
at org.jboss.resteasy.core.interception.AbstractWriterInterceptorContext.proceed(AbstractWriterInterceptorContext.java:122) [resteasy-jaxrs-3.0.6.Final.jar:]
at org.jboss.resteasy.core.ServerResponseWriter.writeNomapResponse(ServerResponseWriter.java:99) [resteasy-jaxrs-3.0.6.Final.jar:]
at org.jboss.resteasy.core.SynchronousDispatcher.writeResponse(SynchronousDispatcher.java:427) [resteasy-jaxrs-3.0.6.Final.jar:]
at org.jboss.resteasy.core.SynchronousDispatcher.invoke(SynchronousDispatcher.java:376) [resteasy-jaxrs-3.0.6.Final.jar:]
at org.jboss.resteasy.core.SynchronousDispatcher.invokePropagateNotFound(SynchronousDispatcher.java:217) [resteasy-jaxrs-3.0.6.Final.jar:]
at org.jboss.resteasy.plugins.server.servlet.ServletContainerDispatcher.service(ServletContainerDispatcher.java:224) [resteasy-jaxrs-3.0.6.Final.jar:]
at …
Run Code Online (Sandbox Code Playgroud) 我正在将一个简单的Web应用程序从Jboss 4.3移动到Jboss 6 EAP(Jboss AS 7.2).但是,由于错误,我无法部署战争
07:43:17,773 ERROR [org.springframework.web.context.ContextLoader] (ServerService Thread Pool -- 63) Context initialization failed: java.lang.NoSuchMethodError: org.springframework.beans.factory.config.ConfigurableListableBeanFactory.registerResolvableDependency(Ljava/lang/Class;Ljava/lang/Object;)V
at org.springframework.context.support.AbstractApplicationContext.prepareBeanFactory(AbstractApplicationContext.java:458) [spring-2.5.5.jar:2.5.5]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:356) [spring-2.5.5.jar:2.5.5]
at org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255) [spring-2.5.5.jar:2.5.5]
at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199) [spring-2.5.5.jar:2.5.5]
at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45) [spring-2.5.5.jar:2.5.5]
at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3339) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3777) [jbossweb-7.2.2.Final-redhat-1.jar:7.2.2.Final-redhat-1]
at org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:156) [jboss-as-web-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
at org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:60) [jboss-as-web-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:93) [jboss-as-web-7.2.1.Final-redhat-10.jar:7.2.1.Final-redhat-10]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [rt.jar:1.7.0_60]
at java.util.concurrent.FutureTask.run(Unknown Source) [rt.jar:1.7.0_60]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [rt.jar:1.7.0_60]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.7.0_60]
at java.lang.Thread.run(Unknown Source) [rt.jar:1.7.0_60]
at org.jboss.threads.JBossThread.run(JBossThread.java:122)
Run Code Online (Sandbox Code Playgroud)
我不确定需要做什么.war文件使用的Spring库是版本2.5.5,并且捆绑在WEB-INF/lib目录中的war 0中.
任何帮助解决我的问题,将不胜感激.谢谢.
我无法在Resteasy中注入cdi bean.在调试时,它似乎总是显示空指针异常.即以下代码中的'jaxRsImpl'始终为null.我试图在jboss eap 6.2上运行
@Path("/jaxrs-service")
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public class JAXRSService {
@Inject
private JAXRSImpl jaxRsImpl;
@POST
@Path("/authenticate")
@Consumes(MediaType.APPLICATION_JSON)
public Response authenticate(Credentials user) {
return jaxRsImpl.authenticate(user);
}
}
Run Code Online (Sandbox Code Playgroud)
而我打算注入的课程是
@RequestScoped
public class JAXRSImpl {
public Response authenticate(Credentials user) {
// Some logic
}
}
Run Code Online (Sandbox Code Playgroud)
由于我的应用程序是web,所以我在WEB-INF文件夹中添加了beans.xml
我的Initialiser看起来像
@ApplicationPath("/rest")
public class JAXRSInitializer extends Application {
private Set<Object> singletons = new HashSet<Object>();
private Set<Class<?>> classes = new HashSet<Class<?>>();
public JAXRSInitializer() {
singletons.add(new JAXRSService());
classes.add(JAXRSImpl.class);
}
@Override
public Set<Class<?>> getClasses() {
return classes;
}
@Override …
Run Code Online (Sandbox Code Playgroud) 如何在WildFly中保护数据源定义中的密码?我找到了导致JBoss 7版本的链接.路径修正后,我在WildFly中遇到了这个错误:
Exception during createSubject()PBOX000016: Access denied: authentication failed: java.lang.SecurityException: PBOX000016: Access denied: authentication failed
Run Code Online (Sandbox Code Playgroud) 使用standalone.bat,在命令提示符下显示如下:
D:\jboss-as-7.1.1.Final\bin>"C:\Program Files\Java\jdk1.8.0_45\bin\java" -XX:+TieredCompilation -Dprogram.name=standalone.bat -Xms
64M -Xmx512M -XX:MaxPermSize=256M -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Djava.net.prefe
rIPv4Stack=true -Dorg.jboss.resolver.warning=true -Djboss.modules.system.pkgs=org.jboss.byteman -Djboss.server.default.config=stan
dalone.xml "-Dorg.jboss.boot.log.file=D:\jboss-as-7.1.1.Final\standalone\log\boot.log" "-Dlogging.configuration=file:D:\jboss-as
-7.1.1.Final\standalone/configuration/logging.properties" -jar "D:\jboss-as-7.1.1.Final\jboss-modules.jar" -mp "D:\jboss-a
s-7.1.1.Final\modules" -jaxpmodule "javax.xml.jaxp-provider" org.jboss.as.standalone -Djboss.home.dir="D:\jboss-as-7.
1.1.Final"
Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=256M; support was removed in 8.0
01:43:23,386 INFO [org.jboss.modules] JBoss Modules version 1.1.1.GA
01:43:23,558 INFO [org.jboss.msc] JBoss MSC version 1.0.2.GA
01:43:23,605 INFO [org.jboss.as] JBAS015899: JBoss AS 7.1.1.Final "Brontes" starting
01:43:24,949 INFO [org.xnio] XNIO Version 3.0.3.GA
01:43:24,949 INFO [org.jboss.as.server] JBAS015888: Creating http management …
Run Code Online (Sandbox Code Playgroud)