我们有一个包含WAR和两个MDBS的EAR。 WAR包含许多使用例如
注释的JAX-WS Web服务@WebService(name = "QuoteService", targetNamespace = "http://quotation.my.place.com")
@SOAPBinding(style = SOAPBinding.Style.RPC)
public interface QuoteService {
:
}
我们的web.xml是web-app version 2.5
当我通过管理控制台部署应用程序时(文件对话框选择耳朵,完成4个步骤),耳朵部署得很好。所有的webServices都是通过我认为的注释类扫描获取的,并且可以在localhost上获得:9080 / MyProj / QuoteService
但是,当我复制Command Assistance提供的管理脚本命令并尝试使用AdminApp jython对象通过脚本进行复制时,耳朵会像MDB一样进行部署,但JAX-WS webServices从未初始化?
我已经附上了提供的命令。我注意到-nodeployws标志存在,但是当我尝试使用-deployws时,我没有成功。在通过控制台进行部署时,还有其他什么能够启动JAX-WS WebServices吗?
AdminApp.install(workspace+"/"+earfile,
'[ -nodeployws -nopreCompileJSPs -distributeApp -nouseMetaDataFromBinary
-nodeployejb -appname ' + appname + ' -createMBeansForResources
-noreloadEnabled -nodeployws -validateinstall warn
-noprocessEmbeddedConfig
-filepermission .*\.dll=755#.*\.so=755#.*\.a=755#.*\.sl=755
-noallowDispatchRemoteInclude -noallowServiceRemoteInclude -asyncRequestDispatchType DISABLED
-nouseAutoLink -noenableClientModule -clientMode isolated -novalidateSchema
-MapModulesToServers
[
[ MyFirstListener-EJB MyProj-MyFirstList-EJB-3.0B.jar,META-INF/ejb-jar.xml
WebSphere:cell=' +cell+ ',node=' +node+ ',server=' +server+ ' ]
[ MySecondListener-EJB MyProj-MySecondList-EJB-3.0B.jar,META-INF/ejb-jar.xml
WebSphere:cell=' +cell+ ',node=' +node+ ',server=' +server+ ' ]
[ MyProj-Client-3.0B.war MyProj-Client-3.0B.war,WEB-INF/web.xml
WebSphere:cell=' +cell+ ',node=' +node+ ',server=' +server+ ' ]
] -MetadataCompleteForModules
[
[ MyFirstListener-EJB MyProj-MyFirstList-EJB-3.0B.jar,META-INF/ejb-jar.xml true ]
[ MySecondListener-EJB MyProj-MySecondList-EJB-3.0B.jar,META-INF/ejb-jar.xml true ]
[ MyProj-Client-3.0B.war MyProj-Client-3.0B.war,WEB-INF/web.xml true ]
]
]' )
答案 0 :(得分:1)
对于任何正在努力解决这个问题的人来说,解决方案就是使用 -MetadataCompleteForModules选项。对于行
MyProj-Client-3.0B.war MyProj-Client-3.0B.war,WEB-INF/web.xml true
我必须将值从true更改为false,因为MetadataCompleteForModules指示部署管理器不会扫描工件中的注释,因为它认为模块的元数据已完成。
希望这有助于将来。
谢谢, 标记