使用WLS12c和OEPE部署错误Weld-001408

时间:2013-03-01 16:39:31

标签: eclipse weblogic12c weld

我在OEPE中创建了以下项目:

  • weld001408(Java EE - 企业应用程序项目)
  • weld001408utility(Java EE - Uitility Project),属于ear weld001408
  • weld001408web(Web - Dynamic Web Project),属于ear weld001408

创建项目时,我没有更改默认值(onley ear-membership),目标运行时是Oracle WebLogic Server 12.1.1。使用向导创建的干净域将添加到工作区中。

守则如下:

公用事业项目

类'weld001408utility / ValueProducer.java'

package weld001408utility;

import javax.enterprise.inject.Produces;

public class ValueProducer {

    @Produces
    public String stringValue() {
        return "someStringValue";
    }

}

META-INF / beans.xml中

<?xml version="1.0" encoding="UTF-8"?>
<beans 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/beans_1_0.xsd">
</beans>

web的项目

weld001408web / ValueConsumerServlet.java

package weld001408web;

import java.io.IOException;
import java.io.PrintWriter;

import javax.inject.Inject;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 * Servlet implementation class ValueConsumerServlet
 */
@WebServlet("/ValueConsumerServlet")
public class ValueConsumerServlet extends HttpServlet {
    private static final long serialVersionUID = 1L;

    @Inject
    private String injectedValue;

    /**
     * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        PrintWriter pw = response.getWriter();
        pw.write("injectedValue: " + injectedValue);
        pw.flush();

    }

}

WEB-INF / beans.xml中

<?xml version="1.0" encoding="UTF-8"?>
<beans 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/beans_1_0.xsd">
</beans>

问题

现在,当我尝试在Eclipse中部署应用程序时,总是出现WELD-001408错误:

<01.03.2013 10:07 Uhr MEZ> <Warning> <Deployer> <BEA-149078> <Stack trace for message 149004
weblogic.management.DeploymentException: 
    at weblogic.application.internal.BaseDeployment.throwAppException(BaseDeployment.java:123)
    at weblogic.application.internal.BaseDeployment.prepare(BaseDeployment.java:239)
    at weblogic.application.internal.EarDeployment.prepare(EarDeployment.java:61)
    at weblogic.application.internal.DeploymentStateChecker.prepare(DeploymentStateChecker.java:158)
    at weblogic.deploy.internal.targetserver.AppContainerInvoker.prepare(AppContainerInvoker.java:60)
    Truncated. see log file for complete stacktrace
Caused By: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [String] with qualifiers [@Default] at injection point [[field] @Inject private weld001408web.ValueConsumerServlet.injectedValue]
    at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:258)
    at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:105)
    at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:125)
    at org.jboss.weld.bootstrap.Validator.validateBeans(Validator.java:324)
    at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:309)
    Truncated. see log file for complete stacktrace
> 

但是当我从eclipse导出ear并通过weblogic管理控制台部署该文件时,一切正常,并且值正确地注入到servlet中。部署没问题,没什么。

有一些针对weblogic的补丁,我安装了最新的(我检查了很多可能属于我的问题的bug,它们都应该包含在12.1.1.0.2中):

WebLogic Server 12.1.1.0.2 PSU Patch for BUG14331523 Thu Oct 11 15:08:09 IST 2012
WebLogic Server 12.1.1.0  Wed Dec 7 08:40:57 PST 2011 1445491 >

我在Windows Vista和基于Linux的系统上使用最新的OEPE版本(一体化软件包)尝试了相同的应用程序,但没有成功......

问题

是否有同样的问题?有人可以重现这个问题吗?如果没有,哪个配置有什么补丁呢?

我不知道它是Eclipse的Oracle Enterprise Pack还是WebLogic-Issue。

感谢您的帮助!

1 个答案:

答案 0 :(得分:1)

我解决了下面说明的问题。添加图片以使其更容易。

转到Eclipse服务器(View),右键单击weblogic服务器12.1.3并单击属性。

enter image description here

在Weblogic中 - &gt;发布,选择“发布为展开的存档”

enter image description here