まったく同じ 2 つの JAXWS を実装しました。
Concat-WS は単語を連結する文字列を取ります。Upshift-WS は文字列を取り、それをアップシフトします。
それらを Tomcat にデプロイし、wsimport ツールを使用して 2 つの JAXWS クライアントを作成しました。
Concat クライアントを実行すると動作しますが、Upshift クライアントでは次のようにスローされます。
javax.xml.ws.WebServiceException: ヘッダーに Content-type がありません!
これについていくつかの記事を読みました。それらはすべてJBOSSに関連しているようですが、これは私の場合ではありません.さらに、2つの正確なJAXWSがどのように異なる動作をすることができますか?
編集
これがUpshift Webサービスです
package upshift;
import javax.jws.WebService;
@WebService(endpointInterface = "upshift.Upshift")
public class UpshiftImpl implements Upshift {
@Override
public String upshift(String x) {
return x.toUpperCase();
}
}
これがConcat Webサービスです
package concat;
import javax.jws.WebService;
@WebService(endpointInterface = "concat.Concat")
public class ConcatImpl implements Concat {
@Override
public String concat(String x) {
return x.concat("+concat");
}
}
編集II:
2 番目の JAXWS が WAR としてエクスポートされたときに問題があることがわかりました。WARとしてエクスポートしようとするたびに、次のようになります。
org.eclipse.core.commands.ExecutionException: Error exportingC:/Users/rmescalera/Desktop/WS-upshift.war
at org.eclipse.jst.j2ee.internal.archive.operations.ComponentExportOperation.execute(ComponentExportOperation.java:150)
at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperationImpl$1.run(DataModelPausibleOperationImpl.java:385)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:2344)
at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperationImpl.runOperation(DataModelPausibleOperationImpl.java:410)
at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperationImpl.runOperation(DataModelPausibleOperationImpl.java:360)
at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperationImpl.doExecute(DataModelPausibleOperationImpl.java:247)
at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperationImpl.executeImpl(DataModelPausibleOperationImpl.java:219)
at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperationImpl.cacheThreadAndContinue(DataModelPausibleOperationImpl.java:89)
at org.eclipse.wst.common.frameworks.internal.datamodel.DataModelPausibleOperationImpl.execute(DataModelPausibleOperationImpl.java:207)
at org.eclipse.wst.common.frameworks.internal.datamodel.ui.DataModelWizard$1CatchThrowableRunnableWithProgress.run(DataModelWizard.java:220)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)
Caused by: java.lang.NullPointerException
at org.eclipse.jst.j2ee.internal.archive.operations.JavaEEComponentExportOperation.getModuleParticipants(JavaEEComponentExportOperation.java:75)
at org.eclipse.jst.j2ee.internal.archive.operations.JavaEEComponentExportOperation.getParticipants(JavaEEComponentExportOperation.java:43)
at org.eclipse.jst.j2ee.internal.archive.operations.JavaEEComponentExportOperation.createFlatComponentArchiver(JavaEEComponentExportOperation.java:91)
at org.eclipse.jst.j2ee.internal.archive.operations.ComponentExportOperation.export(ComponentExportOperation.java:191)
at org.eclipse.jst.j2ee.internal.archive.operations.ComponentExportOperation.execute(ComponentExportOperation.java:136)
... 10 more
それでもWARが生成されますが、エラーがあると思います。そのため、No-Content type in header
いつ消費されるかがわかります。さて、問題は、エクスポート時になぜこのエラーがスローされるのかということです。繰り返しますが、他の Web サービスとまったく同じです。
編集III:
私の進歩に続く関連する質問を開きました。問題が何であったかはまだわかりませんが、コメントで説明しているように、承認された標準メカニズムと関係があると思われます