2012-11-29 5 views
7

Sto creando un servizio Web in Java EE 6 annotando un bean enterprise con @WebService. Ho bisogno di esporre solo alcuni metodi dei bean, quindi ho annotato con @WebMethod solo quelli richiesti. Sfortunatamente JAX-WS ignora le annotazioni e tenta di esporre tutti i metodi. Il problema è che esiste un metodo, che non è destinato ad essere utilizzato come operazione di servizio Web, che restituisce un'interfaccia e che non può essere gestito da JAX-WS, quindi il servizio Web non viene distribuito. Si tratta di un comportamento previsto o mi manca qualcosa?Impossibile escludere il metodo dall'esposizione di JAX-WS come operazione di servizio Web

+0

È possibile impostare la visibilità del metodo su protetto (o equivalente in linguaggio). JAX-WS espone tutti i metodi pubblici per impostazione predefinita (che sono completamente d'accordo). – Anthony

risposta

13

È possibile aggiungere l'attributo "escludi" all'annotazione e impostarlo su vero. Gli stati Javadoc: contrassegna un metodo per NON essere esposto come metodo web.

+0

Ho appena dovuto premere ctrl + spazio per ottenere i parametri di annotazione e la soluzione era lì! Molte grazie. – remigio

+0

ma questo non è possibile in CXF, genera un'eccezione - https://issues.apache.org/jira/browse/CXF-3128?focusedCommentId=12932648&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel # comment-12932648 – Betlista