2011-11-05 54 views
0

我一直有一個很難得到其部署到GlassFish 3.1.1我不斷收到上部署了以下異常簡單的Web服務:Glassfish的ClassCastException異常WebBundleContext和EJBContext的

造成的:java.lang.ClassCastException:COM。 sun.enterprise.deployment.annotation.context.WebBundleContext無法轉換爲com.sun.enterprise.deployment.annotation.context.EjbContext at org.glassfish.webservices.annotation.handlers.WebServiceProviderHandler.processAnnotation(WebServiceProviderHandler.java:158) at org.glassfish.apf.impl.AnnotationProcessorImpl.process(AnnotationProcessorImpl.java:344) ... 42更多

這裏是我的WebService類:

@Stateless 
@WebServiceProvider(
    serviceName = "HelloWorldProviderService", 
    portName = "HelloWorldProviderPort", 
    targetNamespace = "http://mydomain.com/wsdl" 
) 
@ServiceMode(value= Service.Mode.PAYLOAD) 
public class HelloWorldProvider implements Provider<Source> 
{ 
    @Override 
    public Source invoke(Source request) 
    { 
     StringWriter requestXmlWriter = new StringWriter(); 

     try 
     { 
      Transformer copier = TransformerFactory.newInstance().newTransformer(); 
      copier.transform(request, new StreamResult(requestXmlWriter)); 
      System.out.println(requestXmlWriter.toString()); 

      return new StreamSource(new StringReader("<HelloBack/>")); 
     } 
     catch (TransformerException e) 
     { 
      throw new RuntimeException("Failed to convert"); 
     } 
    } 
} 

戰爭佈局

|__ WEB-INF 
|   |__ web.xml 
| 
|__ classes 
|  |__ META-INF 
|  |  |__ ejb-jar.xml 
|  | 
|  |__ <classfile> 
| 
|__ lib 
| |__ <empty> 

這適用於使用OpenEJB的我的測試環境,但我需要它來對GlassFish的工作,並建議將是巨大的。

謝謝你使用NetBeans -kurt

回答

0

?我問,因爲這是一個已知的bug,並已在NetBeans 6.9版中修復。嘗試升級NetBeans,看看它是否適用於您。

+0

普雷斯頓感謝您的迴應,我讀了同樣的帖子,但我使用Intellij,我所做的是從WebServiceProvider類中刪除無狀態,因爲它在容器內我有資源的引用,所以我能讓它工作。我主要感到沮喪的是,在我的測試環境(OpenEJB)中,Stateless與WebServiceProvider註釋一起工作,但不在GlassFish中進行生產。我必須修改測試分支中的ejb-jar.xml,並將其聲明爲無狀態bean以訪問OpenEJB容器中的資源。 – user1030658