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