EJB exposed as web services
I am very new to web services.
I understand that a Stateless bean can be exposed using RPC style web services.
But I want to know if a stateless session bean can be accessed by EJB client and Web service client (java or non-java) simultaneously. ?
i.e. 1. Can same bean serve two types of client simultaneously.(java and non-java client)
2. Does this web service accept complex java object as input parameters. and how?
Hi Patrik,
> Exception raised from invocation of public void com.sap.sia.serviceMonitor.ServiceMonitorBean.initPostConstruct() method on bean instance com.sap.sia.serviceMonitor.ServiceMonitorBean@5a8ab489 ... ; nested exception is: java.lang.NullPointerException
The NPE occurs in the bean code, in the initPostConstruct() method or some other method it calls. Unfortunately, its stack trace is not available above, but you should be able to find it in the defaultTrace file.
HTH!
\-- Vladimir
Similar Messages
-
Stateless EJB expose as web service
I use JDeveloper 10.1.3.0.4 created the folllowing EJB:
BMP: ProductEntityEJB
Stateless session bean: ProductSessionEJB
After i generated session bean web service via web service wizard and
deploy the web service by the generated deployment file,
the error occurred:
---- Deployment started. ---- 2006年3月29日 下午02:41:16
Target platform is Standalone OC4J 10g 10.1.3 (oc4j).
Wrote EJB JAR file to C:\JCo\JDeveloper Workspace\JDevFYP\JDevFYPWS\EjbWebServices.jar
Wrote EAR file to C:\JCo\JDeveloper Workspace\JDevFYP\JDevFYPWS\JDevFYP-JDevFYPWS-EJB-WS.ear
Uploading file JDevFYP-JDevFYPWS-EJB-WS.ear ...
Application Deployer for JDevFYP-JDevFYPWS-EJB-WS STARTS.
Copy the archive to C:\SAP\JSF\jdevstudio1013\j2ee\home\applications\JDevFYP-JDevFYPWS-EJB-WS.ear
Initialize C:\SAP\JSF\jdevstudio1013\j2ee\home\applications\JDevFYP-JDevFYPWS-EJB-WS.ear begins...
Unpacking JDevFYP-JDevFYPWS-EJB-WS.ear
Done unpacking JDevFYP-JDevFYPWS-EJB-WS.ear
Initialize C:\SAP\JSF\jdevstudio1013\j2ee\home\applications\JDevFYP-JDevFYPWS-EJB-WS.ear ends...
Starting application : JDevFYP-JDevFYPWS-EJB-WS
Initializing ClassLoader(s)
Initializing EJB container
Loading connector(s)
Starting up resource adapters
Processing EJB module: EjbWebServices.jar
application : JDevFYP-JDevFYPWS-EJB-WS is in failed state
Operation failed with error:
Missing class: fypws.bean.product.ProductSessionEJBBean
Dependent class: com.evermind.server.ejb.deployment.BeanDescriptor
Loader: oc4j:10.1.3
Code-Source: /C:/SAP/JSF/jdevstudio1013/j2ee/home/lib/oc4j-internal.jar
Configuration: <code-source> in META-INF/boot.xml in C:\SAP\JSF\jdevstudio1013\j2ee\home\oc4j.jar
This load was initiated at JDevFYP-JDevFYPWS-EJB-WS.root:0.0.0 using the Class.forName() method.
The missing class is available from the following locations:
1. Code-Source: /C:/SAP/JSF/jdevstudio1013/j2ee/home/applications/ejb1/ejb1.jar (from <ejb> in C:\SAP\JSF\jdevstudio1013\j2ee\home\applications\ejb1)
This code-source is available in loader ejb1.root:0.0.0.
Deployment failed
Elapsed time for deployment: 2 seconds
#### Deployment incomplete. #### 2006年3月29日 下午02:41:18
How can i solve it??Can you try and see if installing JDeveloper into a directory with no spaces in it (i.e not in \JDeveloper Workspace\) solves the problem?
-
Exposing EJB interfaces as Web Service
Hi all,
I created a prototype using EJBs and Web Services and found out that JDeveloper only allows to expose as Web
Services the Remote interfaces of EJBs and not the Local ones.
Assuming I have included Local and Remote interfaces for each of my EJBs exposed, my questions is, after deploying the application on OC4J 10g are the Web Services accessing the EJBs through the Local interface (I assume it should) but then why I am only allowed to expose the Remote one as Web Service?
TIA,
Best Regards,
GiovanniHi,
no, inbound interfaces can only call web services
that are exposed on some other web servers
only outobund XI interfaces can be exposed as web services
(in this case XI acts as a web server)
and other applicaitons can call this outbound interface
Regards,
michal -
Hi!
I tried to create a Web Service (through wizard) from existing EJB 3.0 Session Bean. Basicly, the wizard just added @WebService annotation to my existing code...
Now, the problem is that simple methods like:
@WebMethod
public String helloWorld() {
return "Hello World!";
}works fine. Expect that if I use Local Interface for this Session Bean, the WSDL shows two helloWorld methods (and one is with exclamation icon showing some kind of problem with multiple methods with same name - but it is not true, I have one and the other one is just interface).
But, when I want to expose my real business service methods like:
@WebMethod
public List<Employee> getEmployees() {
return (List<Employee>)q.getResultList();
}it doesn't work (the Web Service create wizard finishes ok but service doesn't work)! When I try "Test Web Service" (from Session Bean context-menu) or "Show WSDL for Web Service annotations" the error is thrown (Null pointer exception in WSDL).
Basically, it looks to me that Web Service cannot use EJB Entities as parameters or results. Is this correct? I saw some examples on EJB 3.0 web services and there are entities routinely used as both input and output parameters.
Can someone, please, explain me what I'm doing wrong here.
Thanks in advance,
Pedja
P.S. In Web Service wizard, only SOAP 1.1 is enabled. How can I choose SOAP 1.2? And what EJB 3.0 bindings are in same context (SOAP 1.2 or EJB 3.0 bindings?)?Hi Frank,
Most of those problems are resolved (NPE was due to Timestamp field, and two methods with the same name in WSDL because of not choosing to generate SEI in wizard, so the generated WSDL had one method from the Session bean and the other from it's Local interface). But, the errors should DEFINITELY be more descriptive.
Does the wizard work correctly? I noticed plenty of "bug like" details. For example, if I choose to create asynchronous web service, later when I go to Properties the "Asynchronous Web Service" checkbox isn't checked. Also, the @WebMethod annotations are sometimes generated and sometimes not (even if the method is checked to be exposed).
I am also getting these exceptions when I create a proxy for the asynchronous web service (I selected "Generate asynchronous methods for all operations"), could be I'm doing something wrong:
WARNING: The parameter/return type "java.util.concurrent.Future" in the method
"public abstract java.util.concurrent.Future<?>
view.proxy.MyAsyncWebService1.queryDepartmentFindAllAsync(javax.xml.ws.AsyncHandler<view.proxy.types.QueryDepartmentFindAllResponse>)"
is not supported. This method will not be exposed.
WARNING: The parameter/return type "java.util.concurrent.Future" in the method
"public abstract java.util.concurrent.Future<?>
view.proxy.MyAsyncWebService1.returnEmployeeAsync(javax.xml.ws.AsyncHandler<view.proxy.types.ReturnEmployeeResponse>)"
is not supported. This method will not be exposed.
Exception in thread "main" java.lang.NullPointerException
at com.sun.xml.bind.v2.runtime.Coordinator.popCoordinator(Coordinator.java:122)
at com.sun.xml.bind.v2.runtime.XMLSerializer.close(XMLSerializer.java:823)
at com.sun.xml.bind.v2.runtime.MarshallerImpl.write(MarshallerImpl.java:310)
at com.sun.xml.bind.v2.runtime.MarshallerImpl.marshal(MarshallerImpl.java:230)
at javax.xml.bind.helpers.AbstractMarshallerImpl.marshal(AbstractMarshallerImpl.java:87)
at oracle.j2ee.ws.common.databinding.runtime.jaxb20.Jaxb20Serializer.serialize(Jaxb20Serializer.java:218)
at oracle.j2ee.ws.common.databinding.runtime.SerializerBase.serializeSequenceWrapper(SerializerBase.java:80)
at oracle.j2ee.ws.client.jaxws.SoapRequestorSerializer.populateSoapMessage(SoapRequestorSerializer.java:89)
at oracle.j2ee.ws.client.jaxws.WsClientProxyInvocationHandler.invoke(WsClientProxyInvocationHandler.java:184)
at $Proxy11.returnEmployee(Unknown Source)
at MyAsyncWebService1SoapHttpPortClient.main(MyAsyncWebService1SoapHttpPortClient.java:22)
Process exited with exit code 1.Can anyone throw some light on this?
Thanks,
Pedja -
Overloaded ejb methods as web service
I implemented an ejb as a web service. The ejb has 4 overloaded methods. When I looked at the generated wsdl, only one signature was exposed as a web service. Is there a way to make all 4 overloaded methods available to the web service ?
Hi Sandy,
The WLS 6.1 docs clear states that method overloading is not supported with WebLogic
Web Services:
http://e-docs.bea.com/wls/docs61/webServices/develop.html#1034539
However, you might be able to simulate something similar by passing a org.w3c.dom.DocumentFragment
to the method. For example,
public org.w3c.dom.DocumentFragment overloadedMethod(org.w3c.dom.DocumentFragment
variableArgs)
This allows you to use the flexibility of XML to provide various input and output
parameters for the method. In the method's implementation, you determine which
arguments have been passed by parsing the variableArgs node. For quasi type safety,
you could use the xsi:type attribute to associate data types with fragment elements.
Note that you will need to use literal XML encoding to do this.
HTH,
Mike Wooten
Sandy <[email protected]> wrote:
I implemented an ejb as a web service. The ejb has 4 overloaded methods.
When I looked at the generated wsdl, only one signature was exposed
as a web service. Is there a way to make all 4 overloaded methods available
to the web service ? -
How to expose a web service to the outside world?
Hello,
i have created a Web service from a Session bean and successfully published it on one of my UDDI registries using the Admin tool.
At this point, what do I need to do further in order to expose this Web service not just in our LAN but to the outside world?
RoyOffcourse it should be published at UDDI.
Four play key roles in Web services: Universal Description, Discovery and Integration (UDDI), Web Services Description Language (WSDL), Web Services Inspection Language (WSIL), SOAP, and Web Services Interoperability (WS-I).
The UDDI specification defines open, platform-independent standards that enable businesses to share information in a global business registry, discover services on the registry, and define how they interact over the Internet.
See this link too:
http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.jst.ws.consumption.ui.doc.user/concepts/cwsdlud.html
Regards, Suresh KB -
Article written on EJB 3.0 , web services develop n deploy on JBOSS AS
Dear Friends
I would like to announce the article written on EJB 3.0 , web services development and deployment on JBOSS AS at the following location http://jamessmithjava.100webcustomers.com/index.html , I think this would help developers to increase interest on JBoss as well as EJBs
Regards
James
[email protected]
http://tech.groups.yahoo.com/group/james_smithjavaDear Friends
I would like to announce the article written on EJB 3.0 , web services development and deployment on JBOSS AS at the following location http://jamessmithjava.100webcustomers.com/index.html , I think this would help developers to increase interest on JBoss as well as EJBs
Regards
James
[email protected]
http://tech.groups.yahoo.com/group/james_smithjava -
Steps to expose a web service without using SR
Hello,
How can I expose a web service without using the service registry? Is there some documentation for this process?
Thanks,
MattThanks for the response. Although, I do not have an * in the Sender Agreement.
Here is the situation:
When I attempt to reach the URL for my Web Service but using NWA instead of the Service Call I get into NWA.
https://xxxxx.steelcasedev.com/nwa
Result: Success
When I use SOAPSonar to run this URL I get the CPA error:
https://xxxxx.steelcasedev.com//XISOAPAdapter/MessageServlet?senderParty=&senderService=WSProcurement_Async_Sender&receiverParty=&receiverService=Steelcase_Dev&interface=WSProcure_Out&interfaceNamespace=urn:steelcasedev.com:wsprocure:xsuppliers
Result: Error
<context>XIAdapter</context>
<code>ADAPTER.JAVA_EXCEPTION</code>
<text><![CDATA[
com.sap.aii.af.service.cpa.CPAException: com.sap.aii.af.service.cpa.impl.exception.CPALookupException: Couldn't retrieve inbound binding for the given P/S/A values: FP=;TP=;FS=WSProcurement_Async_Sender;TS=Steelcase_SAPR3_D01;AN=WSProcurement_Out;ANS=urn:steelcase.com:wsprocurement:xml2suppliers;
at com.sap.aii.af.service.cpa.impl.lookup.CommonLookup.checkForError(CommonLookup.java:53)
at com.sap.aii.af.service.cpa.InboundRuntimeLookup.getBinding(InboundRuntimeLookup.java:411)
at com.sap.aii.af.service.cpa.impl.lookup.AbstractLookupManager.getBinding(AbstractLookupManager.java:714)
at com.sap.aii.adapter.soap.web.MessageServlet.doPost(MessageServlet.java:430)
The sender adapter is active in ID but in RTWB it is "Started but Inactive". I have found that this status could be related to the fact that I have not had a successful transaction for that channel yet.
My NW Admin says he found this error:
Marked transaction for rollback for message 0015605e-09d7-1ddf-94f7-d5031c019713(INBOUND). Reason: Channel has been configured as inactive and cannot accept messages
I am quite confused.
Thanks,
Matt -
Are all RFCs and BAPIs automatically exposed as web services?
Hello,
Our product helps business users exchange data with SAP. We use standard RFCs and BAPIs to communicate with SAP. This is a .NET application although my question is not specific to .NET.
It seems SAP obsolete their .NET connector in near future. The emphasis is on web services. This is a great move. We can simply drop using the .NET connector and start using the web services. However, I have a few doubts:
1. RFCs and BAPIs are automatically exposed for remoting. When the customer installs our application, it just works out of the box. Customers do not have to make any configuration changes to SAP to expose RFCs and BAPIs.
In the new world, are all RFCs and BAPIs automatically exposed as web services or one has to go through each RFC/BAPI and expose it explicitly?
2. Is there a comprehensive WSDL schema available anywhere for all the RFCs/BAPIs?
3. Are there any other web services (besides RFCs/BAPIs) that SAP Netweaver exposes? Where can I get more information?
Thank you in advance for your help.
Regards,
PradeepDarryl,
Thank you for your help or at least trying to help me. However, you left me with more questions than answers:-(.
1. "Old" does not mean "bad." Each RFC/BAPI serves a specific function. If some RFC is being obsoleted, there must be a replacement documented somewhere. Is there one?
2. I can look into SE80 (and other transactions) to see what is exposed. However, what I need to understand is what is SAP's stance on exposing standard web services.
Can others please share your thoughts?
Regards,
Pradeep -
EJB 3.0 web services security (WS-Security)
How do I enable WS-Security on EJB 3.0 based web services? Since only the @WebService annotation is required to expose a EJB 3.0 bean as a web service, how do I configure options that were previously in oracle-webservices.xml under the <security> tag?
I have been trying to do the same... and it seems to be impossible... (or completly undocumented).
It seems that OC4J 10.3.x is ... no exactly fully EJB3/J2EE5 compliant...
Or something like that:
http://blogs.infosupport.com/berte/archive/2005/09/09/1117.aspx
IMHO... OC4J 10.3.x is still a preview for OC4J 11...
OC4J 10.3.x is kind of a J2EE4/5 hybrid... if you start digging in the documentation, you will find out that the only
way to have WS-Security is going back to J2EE4 http://www.oracle.com/technology/products/jdev/howtos/1013/wssecure/10gwssecurity_howto.html
(of course, I hope you probe me wrong)
Message was edited by:
luxspes -
EJB 3.0 Web service fail to deploy when ws result is on a diff lib project
I'm trying to develop a web service using EJB 3.0 with annotations. I'm using Netbeans 5.5 EE.
The web service should returns an object declared on another Netbeans project.
( a library.jar).
Netbeans compiles everything alright, although when I deploy the application into Glassfish it complains with an error saying that wsdl file for the web service wasn't found.
If I move the returning object class into the same ejb project as the web service it works fine.
So, can anybody explain what is happening ? Is it a bug of Netbeans, Glassfish, EJB 3.0, JAX-WS or newbie programmer ?I'm trying to develop a web service using EJB 3.0 with annotations. I'm using Netbeans 5.5 EE.
The web service should returns an object declared on another Netbeans project.
( a library.jar).
Netbeans compiles everything alright, although when I deploy the application into Glassfish it complains with an error saying that wsdl file for the web service wasn't found.
If I move the returning object class into the same ejb project as the web service it works fine.
So, can anybody explain what is happening ? Is it a bug of Netbeans, Glassfish, EJB 3.0, JAX-WS or newbie programmer ? -
EJB 3.0 Web Services - Custom Request/Response Wrappers
Hi All,
I'm having an issue using Document Literal Wrapped web services with EJB 3.0. I have declared a service endpoint interface(SEI) in one jar file, along with custom wrapper classes for the requests and responses. The wrappers have the XML content customized a bit (different type names, etc.), but should be compatible with the @RequestWrapper and @ResponseWrapper annotations. The implementation is in an EJB jar file that includes the jar with the SEI in it. My issue is that the wrapper classes I declared are not being used, and instead new ones are being generated. Is it even possible for it to use supplied wrappers, or does it have to generate its own (and if so, is it in any way possible to specify the XML types it generates). I've tested this with wsgen, and I get the same result (new wrapper classes, the ones I supplied ignored) as when I deploy it. Here is the output from wsgen:
Note: ap round: 1
[ProcessedMethods Interface: com.company.IngestorService]
[should process method: ingestProductDirectory hasWebMethods: false ]
[endpointReferencesInterface: true]
[declaring class has WebSevice: true]
[returning: true]
[WrapperGen - method: ingestProductDirectory(java.lang.String,java.lang.String)]
[method.getDeclaringType(): com.company.IngestorService]
[requestWrapper: com.company.IngestProductDirectoryRequest]
[should process method: datatypes hasWebMethods: false ]
[endpointReferencesInterface: true]
[declaring class has WebSevice: true]
[returning: true]
[WrapperGen - method: datatypes()]
[method.getDeclaringType(): com.company.IngestorService]
[requestWrapper: com.company.DatatypesRequest]
com\company\DatatypesRequest.java
com\company\DatatypesResponse.java
com\company\IngestProductDirectoryRequest.java
com\company\IngestProductDirectoryResponse.java
Note: ap round: 2
I note that is says "hasWebMethods: false". Could that be an issue? Could it not be seeing my methods as web methods. The SEI and the implementation class are in different jar files and different packages. Could this be an issue?
Here is the web service interface:
@WebService(
name = "IngestorService",
targetNamespace = "http://company.com/"
@SOAPBinding(
style = SOAPBinding.Style.DOCUMENT,
parameterStyle = SOAPBinding.ParameterStyle.WRAPPED
public interface IngestorService
@WebMethod(
action = "http://company.com/ingestProductDirectory"
@WebResult(
name = "response",
targetNamespace = ""
@RequestWrapper(
className = "com.company.IngestProductDirectoryRequest"
@ResponseWrapper(
className = "com.company.IngestProductDirectoryResponse"
public void ingestProductDirectory(
@WebParam(
name = "sourceDirectory",
targetNamespace = ""
String sourceDirectory,
@WebParam(
name = "datatype",
targetNamespace = ""
String datatype);
@WebMethod(
operationName = "datatypes",
action = "http://company.com/datatypes"
@WebResult(
name = "datatypes",
targetNamespace = ""
@RequestWrapper(
localName = "DatatypesRequest",
className = "com.company.DatatypesRequest"
@ResponseWrapper(
localName = "DatatypesResponse",
className = "com.company.DatatypesResponse"
public List datatypes();
Here are the datatype request and response wrappers:
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(
name = "DatatypesRequest"
public class DatatypesRequest
DatatypesResponse.java:
@XmlAccessorType(XmlAccessType.PROPERTY)
@XmlType(
name = "DatatypesResponse",
propOrder =
"datatypes"
public class DatatypesResponse
private List<String> _datatypes;
@XmlElementWrapper(
name = "datatypes",
required = true,
nillable = false
@XmlElement(
name = "datatype",
required = false
public List<String> getDatatypes() {
if (_datatypes == null) {
_datatypes = new ArrayList<String>();
return _datatypes;
Any help would be greatly appreciated. Thanks.I have been trying to do the same... and it seems to be impossible... (or completly undocumented).
It seems that OC4J 10.3.x is ... no exactly fully EJB3/J2EE5 compliant...
Or something like that:
http://blogs.infosupport.com/berte/archive/2005/09/09/1117.aspx
IMHO... OC4J 10.3.x is still a preview for OC4J 11...
OC4J 10.3.x is kind of a J2EE4/5 hybrid... if you start digging in the documentation, you will find out that the only
way to have WS-Security is going back to J2EE4 http://www.oracle.com/technology/products/jdev/howtos/1013/wssecure/10gwssecurity_howto.html
(of course, I hope you probe me wrong)
Message was edited by:
luxspes -
Hello everyone,
I developed a Web Service prototype accessing remote EJB using the EJB
control with special syntax in the jndi-name attribute: @jws:ejb
home-jndi-name="t3://10.10.245.70:7131/AccountDelegatorEJB"
Everything works fine, but I get an error when I restrict access to my web
service with a declarative security model by implementing steps provided in
help doc:
- Define the web resource you wish to protect
- Define which security role is required to access the web resource
- Define which users are granted the required security role
- Configure WebLogic Server security for my web service(Compatibility
Security/Users)
I launch the service by entering the address in a web browser. When prompted
to accept the digital certificate, click Yes, when prompted for network
authentication information, enter username and password, navigate to the
Test Form tab of Test View, invoke the method by clicking the button and I
get the following exception:
<error>
<faultcode>JWSError</faultcode>
<faultstring>Error during JNDI lookup from
jndi:t3://10.10.245.70:7131/AccountDelegatorEJB[Lookup failed for
name:t3://10.10.245.70:7131/AccountDelegatorEJB]</faultstring>
<detail>
<jwErrorDetail> weblogic.jws.control.ControlException: Error during JNDI
lookup from jndi:t3://10.10.245.70:7131/AccountDelegatorEJB[Lookup failed
for name:t3://10.10.245.70:7131/AccountDelegatorEJB] at
weblogic.knex.control.EJBControlImpl.acquireResources(EJBControlImpl.java:27
8) at
weblogic.knex.context.JwsInternalContext.acquireResources(JwsInternalContext
.java:220) at
weblogic.knex.control.ControlHandler.invoke(ControlHandler.java:260) at
ibas.AccountControl.getTransactionHistory(AccountControl.ctrl) at
ibas.GetSecure.retrieveVisaHistoryTxn(GetSecure.jws:64) </jwErrorDetail>
</detail>
</error>
I have a simple Hello method as well in my WebService (which is also
restricted) and it works fine, but remote EJB access doesn't. I tested my
prototype on Weblogic 7.2 and 8.1 platforms - same result.
Is that a bug or I am missing some additional configuration in order to get
that working. Has anyone seen similar behavior? Is there a known resolution?
Or a suggested way to work around the problem?
Thank you.
AndreAndre,
It would be best if this issue is handled as an Eval Support case. Please
BEA Customer Support at http://support.beasys.com along with the required
files, and request that an Eval support case be created for this issue.
Thanks
Raj Alagumalai
WebLogic Workshop Support
"Andre Shergin" <[email protected]> wrote in message
news:[email protected]...
Anurag,
I removed "t3", still get an error but a different one (Unable to create
InitialContext:null):
<error>
<faultcode>JWSError</faultcode>
<faultstring>Error during JNDI lookup from
jndi://secuser1:[email protected]:7131/AccountDelegatorEJB[Unable to
create InitialContext:null]</faultstring>
<detail>
<jwErrorDetail> weblogic.jws.control.ControlException: Error during JNDI
lookup from
jndi://secuser1:[email protected]:7131/AccountDelegatorEJB[Unable to
create InitialContext:null] at
weblogic.knex.control.EJBControlImpl.acquireResources(EJBControlImpl.java:27
8) at
weblogic.knex.context.JwsInternalContext.acquireResources(JwsInternalContext
.java:220) at
weblogic.knex.control.ControlHandler.invoke(ControlHandler.java:260) at
ibas.AccountControl.getTransactionHistory(AccountControl.ctrl) at
ibas.GetVisaHistoryTransactions.getVisaHistoryTxn(GetVisaHistoryTransactions
.jws:67) </jwErrorDetail>
</detail>
</error>
Note: inter-domain communication is configured properly. The Web Service to
remote EJB works fine without a declarative security.
Any other ideas?
Thank you for your help.
Andre
"Anurag" <[email protected]> wrote in message
news:[email protected]...
Andre,
It seems you are using the URL
jndi:t3://secuser1:[email protected]:7131/AccountDelegatorEJB
whereas you should not be specifying the "t3:" protocol.
The URL should be like
jndi://secuser1:[email protected]:7131/AccountDelegatorEJB
Please do let me know if you see any issues with this.
Note that this will only allow you to access remote EJBs in the same WLS
domain. For accessing EJBs on another domain, you need to configure
inter-domain communication by
following a few simple steps as mentioned at
http://e-docs.bea.com/wls/docs81/ConsoleHelp/jta.html#1106135. This link has
been provided in the EJB Control Workshop documentation.
Regards,
Anurag
"Andre Shergin" <[email protected]> wrote in message
news:[email protected]...
Raj,
I tried that before, it didn't help. I got similar error message:
<error>
<faultcode>JWSError</faultcode>
<faultstring>Error during JNDI lookup from
jndi:t3://secuser1:[email protected]:7131/AccountDelegatorEJB[Lookup
failed for
name:t3://secuser1:[email protected]:7131/AccountDelegatorEJB]</faultstr
ing>
<detail>
<jwErrorDetail> weblogic.jws.control.ControlException: Error during JNDI
lookup from
jndi:t3://secuser1:[email protected]:7131/AccountDelegatorEJB[Lookup
failed for
name:t3://secuser1:[email protected]:7131/AccountDelegatorEJB] at
weblogic.knex.control.EJBControlImpl.acquireResources(EJBControlImpl.java:27
8) at
weblogic.knex.context.JwsInternalContext.acquireResources(JwsInternalContext
.java:220) at
weblogic.knex.control.ControlHandler.invoke(ControlHandler.java:260) at
ibas.AccountControl.getTransactionHistory(AccountControl.ctrl) at
ibas.GetSecure.retrieveVisaHistoryTxn(GetSecure.jws:64) </jwErrorDetail>
</detail>
</error>
Anything else should I try?
P.S. AccountDelegatorEJB, the remote EJB my Web Service calls is NOTaccess
restricted.
I hope there is a solution.
Thanks,
Andre
"Raj Alagumalai" <[email protected]> wrote in message
news:[email protected]...
Andre,
Can you try using the following url with username and password
jndi://username:password@host:7001/my.resource.jndi.object ?
once you add webapp level security, the authenticated is the user who
invokes the EJB.
http://e-docs.bea.com/workshop/docs81/doc/en/workshop/guide/controls/ejb/con
CreatingANewEJBControl.html?skipReload=true
has more info on using remote EJB's.
Hope this helps.
Thanks
Raj Alagumalai
WebLogic Workshop Support
"Alla Resnik" <[email protected]> wrote in message
news:[email protected]...
Hello everyone,
I developed a Web Service prototype accessing remote EJB using the EJB
control with special syntax in the jndi-name attribute: @jws:ejb
home-jndi-name="t3://10.10.245.70:7131/AccountDelegatorEJB"
Everything works fine, but I get an error when I restrict access to my
web
service with a declarative security model by implementing steps
provided
in
help doc:
- Define the web resource you wish to protect
- Define which security role is required to access the web resource
- Define which users are granted the required security role
- Configure WebLogic Server security for my web service(Compatibility
Security/Users)
I launch the service by entering the address in a web browser. Whenprompted
to accept the digital certificate, click Yes, when prompted for
network
authentication information, enter username and password, navigate tothe
Test Form tab of Test View, invoke the method by clicking the buttonand
I
get the following exception:
<error>
<faultcode>JWSError</faultcode>
<faultstring>Error during JNDI lookup from
jndi:t3://10.10.245.70:7131/AccountDelegatorEJB[Lookup failed for
name:t3://10.10.245.70:7131/AccountDelegatorEJB]</faultstring>
<detail>
<jwErrorDetail> weblogic.jws.control.ControlException: Error during
JNDI
lookup from jndi:t3://10.10.245.70:7131/AccountDelegatorEJB[Lookupfailed
for name:t3://10.10.245.70:7131/AccountDelegatorEJB] at
weblogic.knex.control.EJBControlImpl.acquireResources(EJBControlImpl.java:27
8) at
weblogic.knex.context.JwsInternalContext.acquireResources(JwsInternalContext
.java:220) at
weblogic.knex.control.ControlHandler.invoke(ControlHandler.java:260)at
ibas.AccountControl.getTransactionHistory(AccountControl.ctrl) at
ibas.GetSecure.retrieveVisaHistoryTxn(GetSecure.jws:64)</jwErrorDetail>
</detail>
</error>
I have a simple Hello method as well in my WebService (which is also
restricted) and it works fine, but remote EJB access doesn't. I testedmy
prototype on Weblogic 7.2 and 8.1 platforms - same result.
Is that a bug or I am missing some additional configuration in order
to
get
that working. Has anyone seen similar behavior? Is there a knownresolution?
Or a suggested way to work around the problem?
Thank you.
Andre -
I have checked with weblogic Server 8.1,
supposing exposing Java Components as web services.
I have checked with the examples.It is quite easily achievable.
But what i want to know as what mentioned in
http://www.javaworld.com/javaworld/jw-08-2004/jw-0802-ejbws.html by using the webservices.xml(deployement descriptor file) which is not used in the current version of weblogic 8.1.Is the use of webservices.xml to expose Java componenents as web services specific to Weblogic Serever 9.0?If yes then how?HIIII...
Use this link ..
it will be usefull 4 u.
[http://help.sap.com/saphelp_nw2004s/helpdata/en/df/e6b74253ffda11e10000000a155106/frameset.htm]
thanks..
Regards
Mayank Saxena -
JCO in a EJB used as Web Service
Hi All,
I'm trying to use JCO in a Web Service. What happens is that as soon as I try to call -any- JCO method I get an error: Exception in method getObjects.I can't even seem to catch this error within Java for a personalized message. I can't find an error in "dev_jrfc.trc" either.
To use JCO I referenced sapjco.jar as an external JAR in the Libraries from the Java Build Path.
Calling the JCO in a Web Dynpro environment doesn't give problems.
Does anyone know the reason for this and can help?
Thanks,
Jeschael
Detailed error:
HTTP/1.1 500 Internal Server Error
Connection: close
Server: SAP J2EE Engine/7.00
Content-Type: text/xml; charset=UTF-8
Date: Thu, 22 Feb 2007 10:07:33 GMT
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ><SOAP-ENV:Body><SOAP-ENV:Fault><faultcode>SOAP-ENV:Client</faultcode><faultstring>Exception in method getObjects.</faultstring><detail><ns1:com.sap.engine.services.ejb.exceptions.BaseEJBException xmlns:ns1='http://sap-j2ee-engine/client-runtime-error'>Exception in method getObjects.</ns1:com.sap.engine.services.ejb.exceptions.BaseEJBException></detail></SOAP-ENV:Fault></SOAP-ENV:Body></SOAP-ENV:Envelope>
Message was edited just after posting by :
J.V. Lebbink
"JCO function" changed in "JCO method"Hi, Jeschael!
I suppose you already tried out calling R/3 FM via JCo in a simple test class, which - without any surrounding - just executes the JCo-call and outputs the returned values or any exception.
What was the result of this? The above mentioned exceptions while creating the client? For debugging the Web Service, you simply have to set a breakpoint in your EJBs method and start via NWDS a remote debugging session. As soon as the Web Service call is executed, the NWDS should open and execution should stop at breakpoint.
Another thing is: Did you already consider using Enterprise Connector for accessing R/3 functions? It' s much more comfortable enabling type-secure and stable usage of R/3 FMs.
Regards,
thomas
Maybe you are looking for
-
Using Win 7 sp1 FireFox 7.0.1 In Privacy Settings: When I change the FireFox will: to "use custom settings for history" and check ok, the setting isn't saved. After I close, then reopen the Privacy Settings tab, the setting for FireFox will: is back
-
Hi all, I have all my CD's ripped to an external hard drive in .wma form. I had to reinstall Windows recently due to an error, and have now re-downloaded iTunes, but have to re-convert all my music which takes a long time. Once I convert all these .w
-
Excel Error When Using Microsoft Data Link
I have a user who is running the following: Windows 7 w/64 bit OS MS Office 2010 SAS 9.3 Software They created a database in Excel and have integrated the information with SAS 9.3 database.
-
Error in forms6i when running in web
hi, I do have a problem in running a form in the web. all forms that we did, just went fine but this form is very different, it is running fine in client/server, but when we transfer it in web, the window automatically minimizes, and when you maximiz
-
Develop presets gone after installing LR 1.0
Hi all, Having a small issue here. I upgraded to 1.0 30 day trial - and all the Adobe develop presets have disappeared. Right now I have absolutely no presets. How can I get these back? I am on a Mac by the way. I have tried to uninstall LR but can n