【问题标题】:Deployment Error Weld-001408 with WLS12c and OEPEWLS12c 和 OEPE 的部署错误 Weld-001408
【发布时间】:2013-03-01 16:39:30
【问题描述】:

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

  • weld001408(Java EE - 企业应用程序项目)
  • weld001408utility(Java EE - Uitility Project),属于耳焊001408
  • weld001408web(Web-动态Web项目),属于耳焊001408

创建项目时,我没有更改默认值(仅耳朵成员),目标运行时是 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>

网络项目

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 的补丁,我安装了最新的(我检查了很多可能属于我的问题的错误,它们应该都包含在 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 和具有最新 OEPE 版本(一体化软件包)的基于 Linux 的系统上尝试了相同的应用程序,但没有成功...

问题

有人有同样的问题吗?有人可以重现这个问题吗?如果没有,它在哪个配置上使用什么补丁?

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

感谢您的帮助!

【问题讨论】:

    标签: eclipse weblogic12c weld


    【解决方案1】:

    我解决了如下所述的问题。添加图片以使其更容易。

    转到 Eclipse Servers (View),右键单击 weblogic server 12.1.3 并单击属性。

    在 Weblogic --> Publishing 中,选择“Publish as an exploded archive”

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-10-15
      • 2015-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-16
      • 1970-01-01
      相关资源
      最近更新 更多