ViewLink Accessor returning null when VO has a BindParameter

I have DeptView and EmpView that is link with a DempEmpViewLink. the link is two way so DeptView has a RowIterator Viewlink accessor and EmpView has a Row ViewLInk accessor.
However inside the employeViewRow code, I always get a Null value when I access the Dept accessor.
//inside Employee View Row.java
Row row = this.getDeptView(); //returns null
...This happens when The DeptView has a bindvariable because I need to filter the DeptView so I have a where clause on the SQL statement. However, when I remove the whereclause and the bindvariable, the Dept ViewLInk accessor returns the correct row.
regards,
Anton

Hi Chris,
My scenario is actually a Invoice Header and Details screen.
I have a HeaderView, DetailsView, and a HeaderDetailLink defined by a Composition Assoc. The headerView has a BindParameter on it. So on my page, I can view/navigate invoices and its details. but at the same time using the same viewobjects and same page, I need to be able to create and save a record on the header and details at the same time by just one Commit/Save. (Similar to a Forms application (header Form, and Details table).
On pageload i execute a methodaction that inserts a row on the header and the detail at the same time. Then on the jsp page, I put some values on the header. Next i put a value on a fieldA on the detail. But when I put a value on fieldA, I need to compute the value of fieldB on the detail based on fieldA and a field of the Header row, fieldHeader.
So to compute fieldB, I put a code on the settermethod of fieldA in the DetailRowImpl.java file:
//detailRowImp.java, setFieldA()
public void setFieldA(Number value) {
setAttributeInternal(FIELDA, value);
... Row row = getHeaderRow(); //returns null
Number fieldbValue = compute(value, row.getAttribute("FieldC")); //NullPointerException
}What are your thoughts? any suggestions?
regards,
Anton

Similar Messages

  • ViewLink accessor attribute NULL when VO has bind vars

    Hi! I noticed that a ViewLink accessor attribute returns a NullPointer when the ViewObject SQL has a bind variable. i have a data model with Dept and Employee ViewObjects that is connected via viewlink.
    I inserted a bind parameter :pDept and added on the whereclause "DeptNo = :pDept" to filter the employee returned based on Department. I then created a new Dept Row and a new employee on the same transaction (no commiting yet). When I got a reference to the viewLink accessor on the EmployeeViewRowImpl, i got a null reference when i tried to reference the viewLInk accessor for the department view:
    //code snippet inside EmployeeViewRowImpl
    void setAnAttribute(Object value) {
       Row row = getDeptView(); //returns null
    }I notice that when I removed the bind variables and the where clause, I get the correct ViewLink accessor.
    Is this expected behavior? if this is a bug, how can i get around this problem?

    hi anton.
    Maybe this is also related to your issue:
    "Difference Between View Link Attribute and View Link Instance in Data Model"
    http://radio.weblogs.com/0118231/stories/2004/11/08/differenceBetweenViewLinkAttributeAndViewLinkInstanceInDataModel.html
    success
    Jan Vervecken

  • EJBs cannot return null when used in Model?

    Hi,
    hopefully this question is in the right place.
    I´ve spent now a few days on tracking a single problem. I am trying to create an web dynpro application with the functionality contained in EJBs. One of my methods in a stateless SessionBean returns an object or null. This SessionBean is bound via model binding to the context of a component controller. Everything works fine as along as the method call returns an object, but if it does not (which is the usual case) the application throws an empty exception without any description. Thanks to this forum i checked the defaultTrace log and found this information:
    [EXCEPTION]
    {0}#1#java.lang.NullPointerException
         at com.sap.tc.webdynpro.model.ejb.model.EJBGenericModelClassExecutable.setPropertiesForModelClass(EJBGenericModelClassExecutable.java:429)
         at com.sap.tc.webdynpro.model.ejb.model.EJBGenericModelClassExecutable.fillReturnParameterToMc(EJBGenericModelClassExecutable.java:634)
         at com.sap.tc.webdynpro.model.ejb.model.EJBGenericModelClassExecutable.execute(EJBGenericModelClassExecutable.java:135)
         at com.test.testprog.testprogwebdynpro.main.Main.doLogin(Main.java:243)
         at com.test.testprog.testprogwebdynpro.main.wdp.InternalMain.doLogin(InternalMain.java:213)
         at com.test.testprog.testprogwebdynpro.main.LoginView.onActionButtonEinloggen(LoginView.java:189)
         at com.test.testprog.testprogwebdynpro.main.wdp.InternalLoginView.wdInvokeEventHandler(InternalLoginView.java:139)
         at com.sap.tc.webdynpro.progmodel.generation.DelegatingView.invokeEventHandler(DelegatingView.java:131)
         at com.sap.tc.webdynpro.progmodel.controller.Action.fire(Action.java:72)
         at com.sap.tc.webdynpro.clientserver.phases.ProcessingEventPhase.doHandleActionEvent(ProcessingEventPhase.java:156)
         at com.sap.tc.webdynpro.clientserver.phases.ProcessingEventPhase.execute(ProcessingEventPhase.java:91)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequestPartly(WindowPhaseModel.java:161)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.doProcessRequest(WindowPhaseModel.java:109)
         at com.sap.tc.webdynpro.clientserver.window.WindowPhaseModel.processRequest(WindowPhaseModel.java:96)
         at com.sap.tc.webdynpro.clientserver.window.WebDynproWindow.processRequest(WebDynproWindow.java:469)
         at com.sap.tc.webdynpro.clientserver.cal.AbstractClient.executeTasks(AbstractClient.java:52)
         at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.doExecute(ClientApplication.java:1431)
         at com.sap.tc.webdynpro.clientserver.cal.ClientApplication.doProcessing(ClientApplication.java:1251)
         at com.sap.tc.webdynpro.serverimpl.core.sessionctx.AbstractExecutionContextDispatcher.delegateToApplicationDoProcessing(AbstractExecutionContextDispatcher.java:158)
         at com.sap.tc.webdynpro.serverimpl.wdc.sessionctx.DispatchHandlerForAppProcessing.doService(DispatchHandlerForAppProcessing.java:35)
         at com.sap.tc.webdynpro.serverimpl.wdc.sessionctx.AbstractDispatchHandler.service(AbstractDispatchHandler.java:116)
         at com.sap.engine.services.servlets_jsp.server.deploy.impl.module.IRequestDispatcherImpl.dispatch(IRequestDispatcherImpl.java:93)
         at com.sap.tc.webdynpro.serverimpl.wdc.sessionctx.ExecutionContextDispatcher.dispatchToApplicationDoProcessing(ExecutionContextDispatcher.java:114)
         at com.sap.tc.webdynpro.serverimpl.core.sessionctx.AbstractExecutionContextDispatcher.dispatch(AbstractExecutionContextDispatcher.java:81)
         at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.dispatch(ApplicationSession.java:507)
         at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.dispatch(ApplicationSession.java:527)
         at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doApplicationProcessingStandalone(ApplicationSession.java:458)
         at com.sap.tc.webdynpro.clientserver.session.ApplicationSession.doProcessing(ApplicationSession.java:249)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doApplicationProcessing(ClientSession.java:699)
         at com.sap.tc.webdynpro.clientserver.session.ClientSession.doProcessing(ClientSession.java:231)
         at com.sap.tc.webdynpro.clientserver.session.RequestManager.doProcessing(RequestManager.java:231)
         at com.sap.tc.webdynpro.serverimpl.core.sessionctx.AbstractExecutionContextDispatcher.delegateToRequestManager(AbstractExecutionContextDispatcher.java:205)
         at com.sap.tc.webdynpro.serverimpl.wdc.sessionctx.DispatchHandlerForRequestManager.doService(DispatchHandlerForRequestManager.java:38)
         at com.sap.tc.webdynpro.serverimpl.wdc.sessionctx.AbstractDispatchHandler.service(AbstractDispatchHandler.java:116)
         at com.sap.engine.services.servlets_jsp.server.deploy.impl.module.IRequestDispatcherImpl.dispatch(IRequestDispatcherImpl.java:93)
         at com.sap.tc.webdynpro.serverimpl.wdc.sessionctx.ExecutionContextDispatcher.dispatchToRequestManager(ExecutionContextDispatcher.java:140)
         at com.sap.tc.webdynpro.serverimpl.core.sessionctx.AbstractExecutionContextDispatcher.dispatch(AbstractExecutionContextDispatcher.java:93)
         at com.sap.tc.webdynpro.serverimpl.core.sessionctx.AbstractExecutionContextDispatcher.dispatch(AbstractExecutionContextDispatcher.java:105)
         at com.sap.tc.webdynpro.serverimpl.core.AbstractDispatcherServlet.doContent(AbstractDispatcherServlet.java:87)
         at com.sap.tc.webdynpro.serverimpl.core.AbstractDispatcherServlet.doPost(AbstractDispatcherServlet.java:61)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
         at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:66)
         at com.sap.engine.services.servlets_jsp.server.Invokable.invoke(Invokable.java:32)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:431)
         at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:289)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)
         at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:376)
         at com.sap.engine.services.servlets_jsp.filters.ServletSelector.process(ServletSelector.java:85)
         at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
         at com.sap.engine.services.servlets_jsp.filters.ApplicationSelector.process(ApplicationSelector.java:160)
         at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
         at com.sap.engine.services.httpserver.filters.WebContainerInvoker.process(WebContainerInvoker.java:67)
         at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
         at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
         at com.sap.engine.services.httpserver.filters.ResponseLogWriter.process(ResponseLogWriter.java:60)
         at com.sap.engine.services.httpserver.chain.HostFilter.process(HostFilter.java:9)
         at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
         at com.sap.engine.services.httpserver.filters.DefineHostFilter.process(DefineHostFilter.java:27)
         at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
         at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
         at com.sap.engine.services.httpserver.filters.MonitoringFilter.process(MonitoringFilter.java:29)
         at com.sap.engine.services.httpserver.chain.ServerFilter.process(ServerFilter.java:12)
         at com.sap.engine.services.httpserver.chain.AbstractChain.process(AbstractChain.java:71)
         at com.sap.engine.services.httpserver.server.Processor.chainedRequest(Processor.java:309)
         at com.sap.engine.services.httpserver.server.Processor$FCAProcessorThread.run(Processor.java:222)
         at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
         at java.security.AccessController.doPrivileged(Native Method)
         at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:152)
         at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:247)
    The request has the cardinality 1..1, the response 0..1 and the return value 1..1. The last one cannot be changed.
    Is that correct that an EJB method call must return an valid object or do i have to change something in order to allow the return of null? Or is this a bug?
    Thanks for any answer in advance

    Hi,
    what are you returning? Objects or basic types? When the methods says it returns a string, a null object is no problem. Btw.  i cannot set the cardinality of the of the return node. It´s fixed as 1..1.
    My session bean looks so
    @Stateless(name="TestBean")
    @WebService
    public class TestBean implements TestLocal {
         public int add(int zahl1, int zahl2)
              return zahl1 + zahl2;
         public String concat(String text1, String text2)
              return text1.concat(text2);
         public String zeroString(String text1)
              return null;
         public User zeroUser(String text1)
              return null;
    The WDP Controller Method looks like this
      public void doejbtest( )  {
        //@@begin doejbtest()
           try
                IZeroStringRequestElement req = wdContext.currentZeroStringRequestElement();
                Request_TestLocal_zeroString obj = req.modelObject();
                req.setText1("test");
                obj.execute();
                wdComponentAPI.getMessageManager().reportWarning("String request was successful");
           catch(Exception e)
                wdComponentAPI.getMessageManager().reportException("String request failed");
                wdComponentAPI.getMessageManager().raisePendingException();
           try
                IZeroUserRequestElement req = wdContext.currentZeroUserRequestElement();
                Request_TestLocal_zeroUser obj = req.modelObject();
                req.setText1("test");
                obj.execute();
                wdComponentAPI.getMessageManager().reportWarning("User request was successful");
           catch(Exception e)
                wdComponentAPI.getMessageManager().reportException("User request failed");
                wdComponentAPI.getMessageManager().raisePendingException();
        //@@end
    The result of the call is
    Warning: String request was successful
    Error: User request failed
    The Cardinalities are:
    Request Cardinality : 1..1
    Response Cardinality : 0..1
    Return Cardinaliy : 1..1 (no value for the string, fixed for the user)

  • SelectedItem return null when hit the NEXT page or Submit

    Hello All,
    I try to add the paging to the open source Alfresco content management. We need to process a large dataset (e.g. > 50K files) so after we gather a list of data files we display them with the checkbox and each checkbox has default checked status.
    If the value="#{FixItemList.selectedItems} is omitted in the <h:selectManyCheckbox> then the paging is fine when hitting the NEXT page or Submit button. If we set the value in the selectManyCheckbox then it returns null for selectedItems.
    Would please point out what I have done wrong? Appreciate for all yours helps.
    This is the managed bean object.
    public class ToolsContext
         private FixItemList fixItemList;
         private ToolsContext()
              this.fixItemList = new FixItemList();
         public void addFix(Fix fix) {
              if(fix != null) {               
                   fixItemList.addFixItem(new SelectItem(fix, fix.getPath(), fix.getDetails(), false));
                   fixItemList.addFixSelectedItems("" + fix + "");
    public class FixItemList implements Serializable
         private static final long serialVersionUID = 123784764562L;          
         private List<SelectItem> items;
         private List<String> selectedItems;
         private int displayItemPerPage;
         public FixItemList() {
              displayItemPerPage = 100;
              items = new ArrayList<SelectItem>();
              selectedItems = new ArrayList<String>();
         public void setItems(List<SelectItem> items) {
              this.items = items;
         public List<SelectItem> getItems() {
              return this.items;          
         public int getItemsSize() {
              return this.items.size();
         public int getDisplayItemPerPage() {
              return this.displayItemPerPage;
         public void setDisplayItemPerPage(int displayItemPerPage) {
              this.displayItemPerPage = displayItemPerPage;
         public void addFixItem(SelectItem selectItem) {          
              items.add(selectItem);
         public List<String> getSelectedItems() {
              return selectedItems;
         public void setSelectedItems(List<String> selectedItems) {
              this.selectedItems = selectedItems;
         public void addFixSelectedItems(String selectedItem) {          
              selectedItems.add(selectedItem);
    }My faces-config.xml
        <managed-bean>
         <description>
            This bean is to display in the Web Project tool as the pagination. HOPEFULLY SO
         </description>
         <managed-bean-name>FixItemList</managed-bean-name>
         <managed-bean-class>org.alfresco.module.websitetools.util.FixItemList</managed-bean-class>
         <managed-bean-scope>session</managed-bean-scope>
        </managed-bean>The JSP page.
    <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
    <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
    <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
    <%@ taglib uri="/WEB-INF/alfresco.tld" prefix="a" %>
    <%@ taglib uri="/WEB-INF/repo.tld" prefix="r" %>
    <%@ taglib uri="/WEB-INF/wcm.tld" prefix="w" %>
    <w:avmList id="files-list" viewMode="details" pageSize="#{FixItemList.displayItemPerPage}" styleClass="recordSet"
    headerStyleClass="recordSetHeader" rowStyleClass="recordSetRow" altRowStyleClass="recordSetRowAlt" width="100%"
    value="#{FixItemList.items}" var="row">
    <%-- checkbox column --%>
    <a:column id="col1" primary="true" width="5" style="padding:2px;text-align:left">
       <h:selectManyCheckbox id="wpt" value="#{FixItemList.selectedItems}">
            <f:selectItem itemLabel="#{row.label}" itemValue="#{row.value}" />
       </h:selectManyCheckbox>
    </a:column>
    <%-- file name column --%>
    <a:column id="col2" primary="true" width="50%" style="padding:2px;text-align:left">
         <h:outputText value="#{row.description}" />
    </a:column>
    <a:dataPager id="pager1" styleClass="pager" />
    </w:avmList>When I hit the NEXT page the #FixItemList.selectedItem return null. We use myface version 1.1.5. And below is the stack error
    SEVERE: Servlet.service() for servlet Faces Servlet threw exception
    java.lang.NullPointerException
         at javax.faces.component._SelectItemsIterator.hasNext(_SelectItemsIterator.java:73)
         at javax.faces.component.UISelectMany.validateValue(UISelectMany.java:268)
         at javax.faces.component.UIInput.validate(UIInput.java:354)
         at javax.faces.component.UISelectMany.validate(UISelectMany.java:297)
         at javax.faces.component.UIInput.processValidators(UIInput.java:184)
         at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:627)
         at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:627)
         at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:627)
         at javax.faces.component.UIForm.processValidators(UIForm.java:73)
         at javax.faces.component.UIComponentBase.processValidators(UIComponentBase.java:627)
         at javax.faces.component.UIViewRoot.processValidators(UIViewRoot.java:149)
         at org.apache.myfaces.lifecycle.ProcessValidationsExecutor.execute(ProcessValidationsExecutor.java:32)
         at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:95)
         at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:70)
         at javax.faces.webapp.FacesServlet.service(FacesServlet.java:139)
         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
         at org.alfresco.web.app.servlet.AuthenticationFilter.doFilter(AuthenticationFilter.java:104)Appreciate for all yours helps,
    Anh

    I put the print out statement in the _SelectItemsIterator and found out that the selected item's value doesn't binding. How would I be able to select an item? Attached is the code with debug print out in the SelectItemsIterator.
    Would some one please point me a direction? Appreciate.
        public boolean hasNext()
            if(_nextItem != null)
                return true;
            if(_nestedItems != null)
                if(_nestedItems.hasNext())
                    return true;
                _nestedItems = null;
            if(_childs.hasNext())
                UIComponent child = (UIComponent)_childs.next();
                getLogger().debug("-----_SelectItemsIterator---child is UIComponent---" + child.getChildCount());
                getLogger().debug("-----_SelectItemsIterator---child is UIComponent---" + child.getAttributes());
                Map m = child.getAttributes();
                Set s = m.keySet();
                Iterator i= s.iterator();
                while (i.hasNext()) {                 
                     getLogger().debug("value  = " + m.get(i.next()));
                if(child instanceof UISelectItem)
                     UISelectItem uiSelectItem = (UISelectItem)child;
                    Object item = uiSelectItem.getValue();
                    getLogger().debug("-----_SelectItemsIterator---child is UISelectItem---getValue()--" + item);
                    if(item == null)
                        Object itemValue = ((UISelectItem)child).getItemValue();
                        String label = ((UISelectItem)child).getItemLabel();
                        String description = ((UISelectItem)child).getItemDescription();
                        boolean disabled = ((UISelectItem)child).isItemDisabled();
                        if(label == null)
                            label = itemValue.toString(); //////////////////////IT THROWS THE EXCEPTION HERE, BECAUSE THE
                                                                 ///itemValue is null
                        item = new SelectItem(itemValue, label, description, disabled);
                        getLogger().debug("-----_SelectItemsIterator---create item - label---" + label);
                        getLogger().debug("-----_SelectItemsIterator---create item - descp---" + description);
                        getLogger().debug("-----_SelectItemsIterator---create item - disable---" + disabled);
                        getLogger().debug("-----_SelectItemsIterator---create item - itemValue--" + itemValue);
                    }

  • Output parameters always return null when ExecuteNonQuery - No RefCursor

    I am trying to call a procedure through ODP that passes in one input parameter and returns two (non-RefCursor) VARCHAR2 output parameters. I am calling the procedure using ExecuteNonQuery(); however, my parameters always return null. When I run the procedure outside of ODP, such as with SQLPlus or SQL Navigator, the output parameters are populated correctly. For some reason, there appears to be a disconnect inside of ODP. Is there a way to resolve this?
    Anyone have this problem?
    Here is the basic code:
    ===========================================================
    //     External call of the class below
    DBNonCursorParameterTest Tester = new DBNonCursorParameterTest();
    ===========================================================
    //     The class and constructor that calls the procedure and prints the results.
    public class DBNonCursorParameterTest
         public DBNonCursorParameterTest()
              //     The test procedure I used is a procedure that takes a recordID (Int32) and then returns a
              //     general Name (Varchar2) and a Legal Name (Varchar2) from one table with those three fields.
              string strProcName                    = "MyTestProc;
              OracleConnection conn               = new OracleConnection(DBConnection.ConnectionString);
              OracleCommand cmd                    = new OracleCommand(strProcName,conn);
              cmd.CommandType                         = CommandType.StoredProcedure;
                   //     Create the input parameter and the output cursor parameter to retrieve data; assign a value to the input parameter;
              //     then create the parameter collection and add the parameters.
              OracleParameter pBPID               = new OracleParameter("p_bpid",               OracleDbType.Int32,          ParameterDirection.Input);
              OracleParameter pBPName               = new OracleParameter("p_Name",               OracleDbType.Varchar2,     ParameterDirection.Output);
              OracleParameter pBPLegalName     = new OracleParameter("p_LegalName",     OracleDbType.Varchar2,     ParameterDirection.Output);
              pBPID.Value = 1;
              //     Open connection and run stored procedure.
              try
                   conn.Open();
                   cmd.Parameters.Add(pBPID);
                   cmd.Parameters.Add(pBPName);
                   cmd.Parameters.Add(pBPLegalName);
                   cmd.ExecuteNonQuery();
                   Console.Write("\n" + cmd.CommandText + "\n\n");
                   //for (int i = 0; i < cmd.Parameters.Count; i++)
                   // Console.WriteLine("Parameter: " + cmd.Parameters.ParameterName + " Direction = "     + cmd.Parameters[i].Direction.ToString());
                   // Console.WriteLine("Parameter: " + cmd.Parameters[i].ParameterName + " Status = "          + cmd.Parameters[i].Status.ToString());
                   // Console.WriteLine("Parameter: " + cmd.Parameters[i].ParameterName + " Value = "          + cmd.Parameters[i].Value.ToString() + "\n");
                   foreach (OracleParameter orap in cmd.Parameters)
                        Console.WriteLine("Parameter: " + orap.ParameterName + " Direction = "     + orap.Direction.ToString() + " Value = " + orap.Value.ToString());
                        Console.WriteLine("Parameter: " + orap.ParameterName + " Status = "          + orap.Status.ToString());
                        Console.WriteLine("Parameter: " + orap.ParameterName + " Value = "          + orap.Value.ToString() + "\n");
                   //     End Test code.
              catch (Exception ex)
                   throw new Exception("ExecuteQuery() failed: " + ex.Message);
              finally
                   this.Close();
         public void Close()
              if (conn.State != ConnectionState.Closed)
                   conn.Close();
    =========================================================
    Other things to note:
    I have no problems with returning RefCursors; they work fine. I just don't want to use RefCursors when they are not efficient, and I want to have the ability to return output parameters when I only want to return single values and/or a value from an insert/update/delete.
    Thanks for any help you can provide.

    Hello,
    Here's a short test using multiple out parameters and a stored procedure. Does this work as expected in your environment?
    Database:
    /* simple procedure to return multiple out parameters */
    create or replace procedure out_test (p_text in varchar2,
                                          p_upper out varchar2,
                                          p_initcap out varchar2)
    as
    begin
      select upper(p_text) into p_upper from dual;
      select initcap(p_text) into p_initcap from dual;
    end;
    /C# source:
    using System;
    using System.Data;
    using Oracle.DataAccess.Client;
    using Oracle.DataAccess.Types;
    namespace Miscellaneous
      class Program
        static void Main(string[] args)
          // change connection string as appropriate
          const string constr = "User Id=orademo; " +
                                "Password=oracle; " +
                                "Data Source=orademo; " +
                                "Enlist=false; " +
                                "Pooling=false";
          // the stored procedure to execute
          const string sql = "out_test";
          // simple input parameter for the stored procedure
          string text = "hello!";
          // create and open connection
          OracleConnection con = new OracleConnection(constr);
          con.Open();
          // create and setup connection object
          OracleCommand cmd = con.CreateCommand();
          cmd.CommandText = sql;
          cmd.CommandType = CommandType.StoredProcedure;
          // the input paramater
          OracleParameter p_text = new OracleParameter("p_text",
                                                       OracleDbType.Varchar2,
                                                       text.Length,
                                                       text,
                                                       ParameterDirection.Input);
          // first output parameter
          OracleParameter p_upper = new OracleParameter("p_upper",
                                                        OracleDbType.Varchar2,
                                                        text.Length,
                                                        null,
                                                        ParameterDirection.Output);
          // second output parameter
          OracleParameter p_initcap = new OracleParameter("p_initcap",
                                                          OracleDbType.Varchar2,
                                                          text.Length,
                                                          null,
                                                          ParameterDirection.Output);
          // add parameters to collection
          cmd.Parameters.Add(p_text);
          cmd.Parameters.Add(p_upper);
          cmd.Parameters.Add(p_initcap);
          // execute the stored procedure
          cmd.ExecuteNonQuery();
          // write results to console
          Console.WriteLine("   p_text = {0}", text);
          Console.WriteLine("  p_upper = {0}", p_upper.Value.ToString());
          Console.WriteLine("p_initcap = {0}", p_initcap.Value.ToString());
          Console.WriteLine();
          // keep console from closing when run in debug mode from IDE
          Console.WriteLine("ENTER to continue...");
          Console.ReadLine();
    }Output:
       p_text = hello!
      p_upper = HELLO!
    p_initcap = Hello!
    ENTER to continue...- Mark

  • ViewLink Accessor Return Type

    I've set up a ViewLink between two ViewObjects and exposed an accessor on the parent. The ADF framework defines this accessor as returning oracle.jbo.RowIterator, the actual implementation class that is returned seems to be oracle.jbo.server.ViewRowSetImpl. I would like to know if I can rely on this being the return type (I guess probably not!).
    What I am trying to do is:
    1) From a row in the parent use the ViewLink accessor get detail rows (I want to do this without defining the relationship in the Data Model, I've seen this refered to as 'row-level master-detail').
    2) Store these detail rows (defined as RowIterator, actually a ViewRowSetImpl) in a collection in the ApplicationModule
    3) In a later request have the potential to search within the detail rows.
    I intend to search within the detail rows by applying ViewCriteria to their corresponding ViewObject, however in order to do this I have to rely on them being in a ViewRowSetImpl and make sure the query parameters are bound.
    e.g. In an App Module method, (_viewStack being my collection)
    ViewRowSetImpl vrsi = (ViewRowSetImpl) _viewStack.peek();
    Object[] params = vrsi.getParameters(true);
    ViewObject vo = vrsi.getRowSet().getViewObject();
    vo.setWhereClauseParams(params);
    ....Apply Criteria to vo and reexecute.I've done a quick test and this approach seems to work. I don't like having to do the cast though. Any thoughts ?
    Thanks

    We've been doing it like that for years.
    If the VL is one-to-many, you will always get a RowIterator back.
    Since a VL is basically a master RowIterator controlling a detail RowSet, I believe it's safe to do something like you (and we) do.
    Sascha

  • Why ResultSet getDate() method returns null when querying .csv file?

    Here is the full code:
    import java.sql.*;
    import java.sql.Types;
    import java.sql.Date;
    import myjava.support.CachedRowSetMaker;
    import javax.sql.rowset.CachedRowSet;
    import java.io.IOException;
    import java.text.SimpleDateFormat;
    import java.util.Calendar;
    class jdbc2{
    final private String s1="SELECT top 10 [DATE], [ADJ CLOSE] FROM [vwo-1.csv]";
    private ResultSet result=null;
    private Connection conn=null;
    public static void main(String[] args) throws SQLException{
    jdbc2 db=new jdbc2();
    try {
              Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
              db.conn = DriverManager.getConnection("jdbc:odbc:STOCK_DATA");
              PreparedStatement sql=db.conn.prepareStatement(db.s1);
              db.result=sql.executeQuery();
    // check column names and types using the ResultSetMetaData object.
              ResultSetMetaData metaData = db.result.getMetaData();
         System.out.println("Table Name : " + metaData.getTableName(2));
         System.out.println("Field\t\tDataType");
         for (int i = 0; i < metaData.getColumnCount(); i++) {
         System.out.print(metaData.getColumnName(i + 1) + "\t");
         System.out.println(metaData.getColumnTypeName(i+1));
         System.out.print(metaData.getColumnName(1) + "\t"+metaData.getColumnName(2)+"\n");
              while (db.result.next()){
                   System.out.print(db.result.getDate("DATE", Calendar.getInstance()));
                   System.out.format("\t%,.2f\n", db.result.getFloat("Adj Close"));
    catch (Exception e) {
    System.out.println("Error: " + e.getMessage());
         finally {
              db.result.close();
              db.conn.close();
    Everything works well, until getting to the block
              while (db.result.next()){
                   System.out.print(db.result.getDate("DATE", Calendar.getInstance()));
                   System.out.format("\t%,.2f\n", db.result.getFloat("Adj Close"));
    The getDate("DATE", Calendar.getInstance())); always returns null, instead of the date value in the vwo-1.csv.
    Even though I change it to
    java.sql.Date d=db.result.getDate("DATE") and convert to String using .toString(), I still gets nulls. The dollar amount in "Adj Close" field is fine, no problem.
    The .csv fils is downloaded from YahooFinace.
    Can anyone review the code and shed some light as to what I did wrong?
    Thanks alot.

    CREATE TABLE `login` (
    `username` varchar(40) DEFAULT NULL,
    `password` varchar(40) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    CREATE TABLE `amount` (
    `amountid` int(11) NOT NULL,
    `receiptid` int(11) DEFAULT NULL,
    `loanid` int(11) DEFAULT NULL,
    `amount` bigint(11) DEFAULT NULL,
    `latefee` int(11) DEFAULT NULL,
    `paymentid` int(11) DEFAULT NULL,
    `pid` int(11) DEFAULT NULL,
    PRIMARY KEY (`amountid`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    CREATE TABLE `applicationfee` (
    `applicationfeeid` int(11) DEFAULT NULL,
    `applicationamount` int(11) DEFAULT NULL,
    `applicationfee` int(11) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    CREATE TABLE `category` (
    `categoryid` int(11) DEFAULT NULL,
    `categoryname` varchar(40) DEFAULT NULL,
    `categorydescription` varchar(500) DEFAULT NULL,
    `cattype` int(11) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    CREATE TABLE `commission` (
    `commissionid` int(11) DEFAULT NULL,
    `bussiness` int(11) DEFAULT NULL,
    `commission` int(11) DEFAULT NULL,
    `pid` int(11) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    CREATE TABLE `customer` (
    `cacno` int(11) NOT NULL DEFAULT '0',
    `name` varchar(40) DEFAULT NULL,
    `age` int(11) DEFAULT NULL,
    `cphone` varchar(40) DEFAULT NULL,
    `cmobile` varchar(40) DEFAULT NULL,
    `caddress` varchar(500) DEFAULT NULL,
    `cstatus` varchar(20) DEFAULT NULL,
    `cphoto` longblob,
    `pid` int(11) DEFAULT NULL,
    PRIMARY KEY (`cacno`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    CREATE TABLE `daybook` (
    `closingbal` varchar(40) DEFAULT NULL,
    `date` date DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    CREATE TABLE `extraincome` (
    `categoryid` int(11) NOT NULL,
    `receiptid` int(11) DEFAULT NULL,
    `date` date DEFAULT NULL,
    `amountid` int(11) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    CREATE TABLE `employee` (
    `empno` int(11) DEFAULT NULL,
    `empname` varchar(40) DEFAULT NULL,
    `age` int(11) DEFAULT NULL,
    `sal` int(11) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    CREATE TABLE `image` (
    `id` int(11) DEFAULT NULL,
    `image` blob
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    CREATE TABLE `loan` (
    `loanid` int(11) NOT NULL DEFAULT '0',
    `loanamt` varchar(40) DEFAULT NULL,
    `payableamount` double DEFAULT NULL,
    `installment` int(11) DEFAULT NULL,
    `payableinstallments` int(11) DEFAULT NULL,
    `monthlyinstallment` varchar(20) DEFAULT NULL,
    `surityname` varchar(20) DEFAULT NULL,
    `applicationfeeid` int(11) DEFAULT NULL,
    `interestrate` float DEFAULT NULL,
    `issuedate` date DEFAULT NULL,
    `duedate` date DEFAULT NULL,
    `nextduedate` date DEFAULT NULL,
    `cacno` int(11) DEFAULT NULL,
    `cname` varchar(20) DEFAULT NULL,
    `pid` int(11) DEFAULT NULL,
    `interestamt` double DEFAULT NULL,
    `pendingamt` float DEFAULT NULL,
    PRIMARY KEY (`loanid`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    CREATE TABLE `md` (
    `mdid` int(11) NOT NULL DEFAULT '0',
    `mdname` varchar(40) DEFAULT NULL,
    `mdphoto` varchar(100) DEFAULT NULL,
    `mdphone` varchar(40) DEFAULT NULL,
    `mdmobile` varchar(40) DEFAULT NULL,
    `mdaddress` varchar(500) DEFAULT NULL,
    PRIMARY KEY (`mdid`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    CREATE TABLE `partner` (
    `pid` int(11) NOT NULL DEFAULT '0',
    `pname` varchar(40) DEFAULT NULL,
    `paddress` varchar(500) DEFAULT NULL,
    `pphoto` varchar(100) DEFAULT NULL,
    `pphone` varchar(40) DEFAULT NULL,
    `pmobile` varchar(40) DEFAULT NULL,
    `pstatus` varchar(20) DEFAULT NULL,
    `mdid` int(11) DEFAULT NULL,
    `mdname` varchar(40) DEFAULT NULL,
    `date` date DEFAULT NULL,
    `nextpaydate` date DEFAULT NULL,
    PRIMARY KEY (`pid`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    CREATE TABLE `partnerinvested` (
    `pid` int(11) DEFAULT NULL,
    `pname` varchar(20) DEFAULT NULL,
    `receiptid` int(11) DEFAULT NULL,
    `date` date DEFAULT NULL,
    `amountinvested` int(11) DEFAULT NULL,
    `latefee` int(11) DEFAULT NULL,
    `amountid` int(11) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    CREATE TABLE `payments` (
    `paymentid` int(11) NOT NULL,
    `categoryid` int(11) DEFAULT NULL,
    `particulars` varchar(100) DEFAULT NULL,
    `amountid` int(11) DEFAULT NULL,
    `paymentdate` date DEFAULT NULL,
    PRIMARY KEY (`paymentid`)
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
    CREATE TABLE `receipts` (
    `receiptid` int(11) DEFAULT NULL,
    `paiddate` date DEFAULT NULL,
    `amountid` int(11) DEFAULT NULL,
    `loanid` int(11) DEFAULT NULL,
    `latefee` int(11) DEFAULT NULL,
    `installment` int(11) DEFAULT NULL,
    `cacno` int(11) DEFAULT NULL,
    `cname` varchar(40) DEFAULT NULL,
    `pid` int(11) DEFAULT NULL
    ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

  • URLConnection returns NULL when called from within a weblogic servlet

    The following code snippet works when executed outside of weblogic, but does
    not work from within a weblogic servlet instance.
    URL u = new URL("http://" + ipString + newString.toString());
    URLConnection uc = u.openConnection();
    BufferedReader in = new BufferedReader (new InputStreamReader(uc.getInputStream()));
    String response = "", response2 = "";
    while(response2 != null)
         response = ((response2 = in.readLine()) == null) ? response : response + response2;
    The response is quite big. When this code is executed from within a weblogic servlet instance,
    in.readLine always returns a null right away. Yet a TCP/IP trace shows that the packets are coming
    back to my NT machine.
    Other info:
    Inside of weblogic:
    u's handler is of type weblogic.net.http.Hanlder
    uc is of type weblogic.net.http.HttpURLConnection
    Outside of weblogic:
    u's handler is of type sun.net.www.protocol.http.Handler
    uc is of type sun.new.www.protocol.http.HttpURLConnection
    Weblogic V4.51. Running on NT.
    Attempted the following to no avail:
    1. installing sp11
    2. changing the security to permission java.security.AllPermission;
    3. adding the following calls : uc.setRequestProperty("Content-Type", "text/xml");          
              uc.setDoInput(true);
              uc.setDoOutput(true);
    4. Started playing around with modifying the java.protocol.handler.pkgs system property,
    but I shouldn't have to do this.
    Any help would be appreciated.

    There are some problems with the WL implementations of certain protocols.
    WL hides the Sun implementations when you are in the WebLogic server. Here
    is an a solution that was posted to a similar problem:
    Https is an add-in so to speak. Try this before you create your url:
    System.setProperty ("java.protocol.handler.pkgs",
    "com.sun.net.ssl.internal.www.protocol");
    // add the default security provider (again, in JSSE1.0.1)
    int iap = java.security.Security.addProvider(new
    com.sun.net.ssl.internal.ssl.Provider() );
    dennisNote how the code overides the WL setting which overode the Sun setting.
    Cameron Purdy
    [email protected]
    http://www.tangosol.com
    WebLogic Consulting Available
    "Brian Howell" <[email protected]> wrote in message
    news:[email protected]...
    >
    The following code snippet works when executed outside of weblogic, butdoes
    not work from within a weblogic servlet instance.
    URL u = new URL("http://" + ipString + newString.toString());
    URLConnection uc = u.openConnection();
    BufferedReader in = new BufferedReader (newInputStreamReader(uc.getInputStream()));
    >
    String response = "", response2 = "";
    while(response2 != null)
    response = ((response2 = in.readLine()) == null) ? response : response +response2;
    The response is quite big. When this code is executed from within aweblogic servlet instance,
    in.readLine always returns a null right away. Yet a TCP/IP trace showsthat the packets are coming
    back to my NT machine.
    Other info:
    Inside of weblogic:
    u's handler is of type weblogic.net.http.Hanlder
    uc is of type weblogic.net.http.HttpURLConnection
    Outside of weblogic:
    u's handler is of type sun.net.www.protocol.http.Handler
    uc is of type sun.new.www.protocol.http.HttpURLConnection
    Weblogic V4.51. Running on NT.
    Attempted the following to no avail:
    1. installing sp11
    2. changing the security to permission java.security.AllPermission;
    3. adding the following calls : uc.setRequestProperty("Content-Type","text/xml");
    uc.setDoInput(true);
    uc.setDoOutput(true);
    4. Started playing around with modifying the java.protocol.handler.pkgssystem property,
    but I shouldn't have to do this.
    Any help would be appreciated.

  • Return NULL when invoke Web Service via UTL_DBWS

    Hi all,
    right now, i'm using UTL_DBWS to acces Web Service via database.. but when i'm trying to get data from WEB SERVICE, using utl_dbws.invoke , i got NULL value.
    It happened if The result more than Varchar2 / 32767 byte.
    i'have tried to change code by :
    result := sys.utl_dbws.invoke(l_call, l_input_params);
    P_clob := sys.anydata.accessCLOB(result);
    The Output IS NULL value even if the data was less than Varchar2 or 32767 byte..
    this is my script looks like ::
    declare
    service sys.utl_dbws.SERVICE;
    l_call sys.utl_dbws.CALL;
    result ANYDATA;
    wsdl_url VARCHAR2(1024);
    service_name VARCHAR2(200);
    operation_name VARCHAR2(200);
    input_params sys.utl_dbws.ANYDATA_LIST;
    p_out VARCHAR2(32767);
    p_xml XMLTYPE;
    p_clob CLOB;
    begin
    wsdl_url := 'http://127.0.0.1/Exercise/WSDL2.php?wsdl';
    service_name :='{urn:hellowsdl}hellwsdl';
    operation_name := 'getData';
    service := sys.UTL_DBWS.create_service (
    wsdl_document_location => URIFACTORY.getURI(wsdl_url),
    service_name => service_name);
    l_call := sys.utl_dbws.create_call(
    service_handle => service,
    port_name => null,
    operation_name => operation_name
    input_params(1) := ANYDATA.ConvertVarchar2('DOCCODE');
    result := sys.utl_dbws.invoke(l_call, l_input_params);
    p_out := sys.anydata.accessVarchar2(result);
    sys.UTL_DBWS.release_call (call_handle => l_call);
    sys.UTL_DBWS.release_service (service_handle => service);
    end;
    Thanx for Any Help

    The basics are simple:
    - format a valid SOAP envelope
    - use UTL_HTTP to make the call
    - process the response (typically XML output)
    Sample source code in {message:id=4205205}.

  • BufferedReader.readLine doesn't return null

    Hi there,
    I'm trying to put together a simple Chat client/server application. The issue I'm having is with the Server app. I have a class that extends Thread which contains this call:
    temp = input.readLine()
    in the run() method. Everytime I connect with the client side app, an instance of this class "ReceivingThread" is created and is supposed to read in any messages coming in using a BufferedReader. That's the input variable type. According to the API readLine() is supposed to return null when there's nothing more to read in. In my code I check for null but it never seems to leave the while loop.
    Please advise,
    Alan
    package vcserver;
    import java.io.*;
    import java.net.*;
    import java.util.StringTokenizer;
    public class ReceivingThread extends Thread
      private BufferedReader input;
      private MessageListener messageListener;
      private boolean keepListening = true;
      public ReceivingThread(MessageListener listener, Socket clientSocket)
           super("ReceivingThread: " + clientSocket);
           messageListener = listener;
           try
                clientSocket.setSoTimeout(5000);
                input = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
           catch(IOException ioe){ioe.printStackTrace();}
      public void run()
           StringBuffer messageBuffer = new StringBuffer();
           String temp = "";
           try
              START:
              while(keepListening)
                 while(true)
                    try
                                  temp = input.readLine();
                    catch(InterruptedIOException iioe)
                                  continue;
                    catch(IOException ioe){break;}
                       if(temp != null)
                    try
                       System.out.println("temp: " + temp);
                       messageBuffer.append(temp);               
                     catch(Exception e)
                       e.printStackTrace();
                       break START;
                    else
                    break;
                 System.out.println("out of while loop...message:\n" + messageBuffer.toString());
                 String message = messageBuffer.toString();
                 StringTokenizer tokenizer = new StringTokenizer(message, Constants.MESSAGE_SEPERATOR);
                  if(tokenizer.countTokens() == 2)
              System.out.println("message received");
              messageListener.messageReceived(tokenizer.nextToken(), tokenizer.nextToken());
                  else
              if(message.equalsIgnoreCase(Constants.MESSAGE_SEPERATOR + Constants.DISCONNECT_STRING))
              stopListening();
             input.close();
           catch(IOException ioe){ioe.printStackTrace();}
      public void stopListening()
           keepListening = false;
    }Edited by: ashiers on Nov 20, 2007 10:51 AM

    Not to mention garbage ...
    readLine() returns null when there is nothing more to read, i.e. when the other end has closed its socket. If the other end hasn't closed its socket it won't return null, it will block. There might be more data coming later, at which time readLine() will unblock and read it and return it.

  • Does readLine return null at end of file?

    My program is reading lines from a file in groups of 5. I want it to stop reading when it has reached the end of the file. Does readLine return null when there are no more lines or is there another way to end a loop like this?
    Thanks!
    try {
    String a, b, c, d, e;
    a = BR.readLine();
    b = BR.readLine();
    c = BR.readLine();
    d = BR.readLine();
    e = BR.readLine();
    while (a != null){
    a = BR.readLine();
    b = BR.readLine();
    c = BR.readLine();
    d = BR.readLine();
    e = BR.readLine();
    }                              

    readLine returns null at end of file. I actually use the following to end my loop...maybe this would help you.
    FileReader file = new FileReader("bkupcandilist.bin");
    BufferedReader buff = new BufferedReader(file);
    boolean eof = false;
    while(!eof) {     //retrieve all candidate names          
         scandi = buff.readLine();
         if(scandi == null) {
            eof = true;
         } else {
            atally = new String[2];
               atally[0] = scandi;
               atally[1] = "0";
               listtally.add(atally);
    buff.close();          

  • Any way to return NULL using MIN

    I need to return NULL when select the MIN of a column that has vales and NULLs.
    Any ideas?

    Try the syntax shown in RESULT_2 below.
    set null "(null)"
    with t as
      select 'a' as group_key, null as val from dual union all
      select 'b' as group_key, null as val from dual union all
      select 'b' as group_key, 1    as val from dual union all
      select 'c' as group_key, 3    as val from dual
    select
      group_key ,
      min( val ) result_1 ,
      min( val ) keep (dense_rank first order by val nulls first) result_2
    from t
    group by group_key ;
    G   RESULT_1   RESULT_2
    a (null)     (null)
    b          1 (null)
    c          3          3--
    Joe Fuda
    SQL Snippets

  • Java Web Start (JNLP) getResource return null.

    I have a Java Web Start Swing application and with the Java version 1.6.0_u27.
    same code run from jdk1.1.8 to jdk 1.6, more then 10 customers it's work fine, java web start only run on jdk 1.4.0 and jdk 1.5.0.
    just migrate one customer from Java version 1.5.0_u6 to 1.6.0_u27.
    sometimes, the getResource will return null, when system return null, then system cannot get any other resource, always return null.
    It only happen in Java web start environment, work fine in command line (java/javaw), and same as the WebStart loses resources post,
    "Unfortunately this cannot be reproduced easily. Sometimes this happens after some minutes, sometimes the application can be used for days without problems.",
    note. all of my resource files put in the same jar file, one resource file in that jar get fail, all files will be fail.
    after I get the url, I will use new BufferedInputStream(url.openStream()); to retrieve data, never use the File object.
    for example, get resource from "/path/a1.xml", "/path/a2.xml"....... 30 minutes pass, get same file "/path/a1.xml" will return null, then all resource will return null.
    URL url = getClass().getResource(s);
    if(url == null) {
    System.out.println(getClass().getResourceAsStream(s)); // also null, log only
    // if the url == null, the following retrieve will be null
    url = Thread.currentThread().getContextClassLoader().getResource(s);
    if(url == null){
    System.out.println(Thread.currentThread().getContextClassLoader().getResourceAsStream(s)); // also null, log only
    ClassLoader loader = getClass().getClassLoader();
    if(loader == null){
    loader = ClassLoader.getSystemClassLoader();
    if(loader != null) {
    System.out.println(loader.getResourceAsStream(s)); // also null, log only
    url = loader.getResource(s);
    if(url == null) {
    System.out.println("URL resource still can not found!!" + s);
    Edited by: M. Jwo on 2011/11/3 上午 5:40

    I ran into the same problem with JNLP and IE.
    Here is the trick I am using to make IE think that it is dealing with "real" .jnlp file. This works on JBoss-3.2.1/Tomcat-4.1.24 bundle.
    In web.xml:
    <servlet>
    <servlet-name>fakejnlp</servlet-name>
    <description>jsp that generates JNLP on the fly</description>
    <jsp-file>start.jsp</jsp-file>
    </servlet>
    <servlet-mapping>
    <servlet-name>fakejnlp</servlet-name>
    <url-pattern>/start.jnlp</url-pattern>
    </servlet-mapping>
    Now, when you request start.jnlp (perhaps, with HTTP parameters), you end up executing your start.jsp. IE is happy. One limitation, though: if you need to pass parameters, there should be no href attribute in <jnlp> element.
    HTH
    Alex

  • ViewLink accessor erratic; sometimes returning with value, sometimes null

    When does a ViewLink Accessor gets initialized or assigned a value.
    consider the following code:
    setAnAttribute(Object value) {
       setAtttributeInternal(ATTRIBUTEINDEX, value);
       Row row = getViewLinkeAccessorView(); 
       if(row!= null)   //sometimes this one executes the if block, sometimes not.
    }

    When does a ViewLink Accessor gets initialized or assigned a value.
    consider the following code:
    setAnAttribute(Object value) {
       setAtttributeInternal(ATTRIBUTEINDEX, value);
       Row row = getViewLinkeAccessorView(); 
       if(row!= null)   //sometimes this one executes the if block, sometimes not.
    }

  • Reading User Profile Properties pragmatically in SharePoint 2010 Returns Null Values Although it has values returned from AD

    Reading User Profile Properties pragmatically in SharePoint 2010 Returns Null Values Although it has values returned from AD
    I configured the user profile service application and run Sync and user profiles and its properties returned from Active directory but when I want to read it pragmatically it returns null values.
    this is my code...
       void runQueryButton_Click(object sender, EventArgs e)
               // Get the My Sites site collection, ensuring proper disposal
                using (SPSite mySitesCollection = new SPSite("http://sp/my"))
                    //Get the user profile manager
                    SPServiceContext context = SPServiceContext.GetContext(mySitesCollection);
                    UserProfileManager profileManager = new UserProfileManager(context);
                    UserProfile profile = profileManager.GetUserProfile("Contoso\\user");
                    foreach (Property prop in profileManager.Properties)
                       // if (prop.Name == "Department")
                        resultsLabel.Text += prop.DisplayName + ":" + profile[prop.Name].Value + "<br />"; ;

     Hi,
    Please try with the following code
          PrincipalContext principalContext = new PrincipalContext(ContextType.Domain);
                                SPServiceContext context = SPServiceContext.GetContext(site);
                                UserProfileManager profileManager = new UserProfileManager(context);                        
      foreach (Property prop in profileManager.Properties)
                       // if (prop.Name == "Department")
                        resultsLabel.Text += prop.DisplayName
    + ":" + profile[prop.Name].Value + "<br />"; ;
    Thanks,
    Vivek
    Please vote or mark your question answered, if my reply helps you

Maybe you are looking for